Mark · Record · Verify

One pass at publish. Three traces forever.

Your asset passes through Provena once, on its way out. It leaves with a signed manifest, an invisible mark and a line in an append-only ledger. Nothing about your pipeline has to change afterwards.

Start free Read the API reference
PUBLISH PIPELINELIVE
  • Your generator or CMSunchanged
  • POST /v1/assets/sign142 ms
    MANIFESTWATERMARKLEDGER
  • Published assetverifiable
01THREE EVIDENCE LAYERS
01

Signed manifest

A C2PA manifest with signature and timestamp: who, when, which model.

  • Travels inside the file, no lookup needed
  • Names the generator and the edit actions
  • !Removed by screenshots and some re-encodes
02

Invisible watermark

Carried in the pixels or the audio; survives recompression and rescaling.

JPEG q601.00
0.5× rescale (down and back up)0.96
Crop 20%0.92
03

Immutable audit trail

A hash-chained record per organisation, with periodic checkpoints.

  • 41208asset.signed9f2a41c8
  • 41207watermark.embeddedc81b0d4e
  • 41206asset.ingested3a5be04f
02HOW IT REACHES YOUR STACK

One call on the way out

Post the asset bytes with a policy id. You get back the marked file, the manifest and the ledger sequence number in a single response.

  • Idempotent: the same asset id never signs twice
  • Async mode for video, with a webhook on completion
  • Signing identity chosen per policy, not per call
REST · curl
curl -X POST https://api.provena.eu/v1/assets/sign \ -H "Authorization: Bearer pk_live_…" \ -F policy=newsroom-default \ -F file=@render_0904.jpg { "asset_id": "as_8f21c4", "verdict": "SIGNED_QUALIFIED", "ledger_seq": 41208, "sha256": "9f2a41c8…" }
03 · WHAT YOU SEE AFTERWARDS

Coverage is a number, and the gaps have names.

Every connected channel reports back. When something publishes unmarked, it appears here with the channel, the time and the reason — not as a percentage you have to trust.

See the panel
COVERAGE · LAST 30 DAYS+3.1 pt
94.2%
  • Signed & marked11 690
  • Unmarked · action needed218
  • Exempt · documented500