Provenance

A C2PA metadata checker reads the label. It cannot validate the signature chain from the file alone.

C2PA is a signed manifest embedded in a file, listing how an asset was made and edited. Most checkers can tell you one is present. Very few can tell you whether the signer is anyone you trust.

What the manifest is

The Coalition for Content Provenance and Authenticity defines a format for attaching provenance claims to media. A manifest holds assertions: who created the asset, with which tool, and which edits were applied, each recorded as an ingredient.

Those assertions are signed, so a verifier can check that the manifest was not altered after signing, and can see which certificate signed it.

Content Credentials is the consumer-facing name for the same idea, popularised by Adobe. It is one implementation of C2PA, not a separate standard.

What a checker actually reads

A file-level checker scans the bytes for the manifest container and for the strings that identify provenance systems and generators. That produces an inventory rather than a verdict.

  • Whether a C2PA manifest container is present.
  • Whether Content Credentials markers appear in the same file.
  • Which generator or editor names are recorded: Firefly, Midjourney, DALL·E, Stable Diffusion, ComfyUI, Photoshop.
  • Whether an XMP metadata block exists, which may hold origin notes outside C2PA.
  • Whether an ICC colour profile is embedded, since its absence is often the first sign a file was re-encoded.

The verification gap, stated plainly

Reading a marker is not validating a signature. Full validation requires parsing the manifest, checking the signature against a trust list, and confirming the hash of the asset matches the claim.

A browser-side check can do the first step and reason about the presence of the rest. It cannot fetch a trust list and present a chain of custody as established, and it should not imply that it did.

This is the honest limit worth knowing when a client asks whether an image is verified: markers present is a statement about the file, not about the world.

Why markers disappear

Resizing, format conversion, screenshotting and most social platforms strip or drop embedded metadata. The asset that reaches your CMS is frequently not the asset that was signed.

The practical consequence is that absence is the normal state. A file with no manifest is evidence of a lossy path, not evidence of tampering.

If provenance matters to a workflow, capture it at the point of export and store it alongside the delivery: the manifest, the file hash, the date and the tool. That record survives the pipeline even when the pixels do not.

What to do with the result

When a manifest is present, keep the file rather than the screenshot, and note which tool signed it. That is the beginning of an evidence trail.

When it is absent and the image is used as evidence, ask the supplier for the original file and the export path. Most suppliers can produce the camera original or the generator's signed output.

When it is absent and the image is decorative, do nothing except stop claiming provenance you do not have.

Where this is heading

Platforms are progressively adopting disclosure labels and manifest preservation, and camera manufacturers are shipping signing at capture. The direction of travel is signed media as a default rather than an extra step.

Until then, treat provenance as a property of a workflow rather than of a file. The organisation that signs at creation, records the hash at export and stores both has an answer; the one that checks a screenshot does not.

A cheap check at every hop is more useful than an expensive audit after publication.

What this covers

  • Manifest container

    Whether a C2PA structure is embedded in the file bytes.

  • Content Credentials

    Markers from the same ecosystem, reported alongside the manifest.

  • Generator names

    Recorded tools and editors, listed rather than interpreted.

  • XMP and colour profile

    Secondary blocks whose absence suggests re-encoding.

  • Honest limits

    Marker presence reported as file evidence, never as validated authenticity.

Questions this page usually raises

Does a C2PA manifest prove an image is authentic?
No. It proves the manifest was signed and lists the claims made. Authenticity depends on trusting the signer and on the asset matching the claim, which requires full validation.
Why is the manifest missing from an image I know had one?
Almost always a lossy step: resizing, screenshotting, format conversion or a platform upload that strips metadata. Check the file at each hop to find which one.
Can the checker validate a signature?
Not from the browser. It reports that a manifest exists and which markers accompany it. Signature validation needs the manifest parsed against a trust list.
Is Content Credentials the same as C2PA?
Content Credentials is the product name for an implementation of the C2PA standard. A file may carry markers from either vocabulary.
Does checking an image upload it to a server?
No. The bytes are inspected locally in your browser, so unreleased campaign assets stay on your machine.

C2PA metadata checker

Run the checks, then decide who has to sign it.

The automated pass is free, needs no account and uploads nothing. Escalate to a named reviewer only where being wrong is expensive.