Skip to main content
Encypher Logo

C2PA validation status codes, explained

A C2PAC2PA: The Coalition for Content Provenance and Authenticity: the group that publishes the open standard for content labels. checker reports one validation status codeValidation status code: A short standard string a C2PA checker reports for each check, such as claimSignature.validated or assertion.dataHash.mismatch. per check. On this page, a code that ends in validated, match or trusted passed; the others failed. C2PA also defines other success and informational codes.

These are the 13 codes Encypher's open-source checker explains in plain English; it reports others too. The California AI Transparency ActCalifornia AI Transparency Act: California's law requiring generative AI providers to hide an AI disclosure in the images, video and audio they make or edit, and offer a free tool that reads it. asks covered AI companies for a free tool that checks labels like these. Read the guide.

Signature checks

Whether the claim signatureClaim: The part of a C2PA manifest that lists every assertion by hash and is then signed, so no assertion can change unnoticed. still verifies, which shows the claim, the signed list of the C2PA manifestC2PA manifest: The signed label itself: a small package inside a file that records who signed it, what they declared and how to check it.'s parts, is unchanged since it was signed.

  • The active claim signature does not verify.

    Treat the manifest as untrustworthy. The signed claim was altered after signing, or the signature is corrupt; obtain a fresh signed copy from the source.

  • The active claim signature is cryptographically valid.

Hash checks

Whether the content and each assertionAssertion: One statement inside a C2PA label, such as what was done to the content, whether AI was used, or the content's hash. still match the hashHash: A short fingerprint of exact bytes. Any change, even one character, gives a completely different hash. the claim signed. A mismatch means bytes changed after signing, or the hash data is invalid.

  • A referenced assertion changed or is not the referenced bytes.

    Reject the manifest. A referenced assertion was changed or replaced after the claim was signed.

  • The asset bytes do not match the signed data-hash assertion.

    The asset changed after signing, or its hash data is invalid. Re-acquire the original signed file before relying on it.

  • The BMFF boxes do not match the signed box-hash assertion.

    The media container changed after signing, or its hash data is damaged. Re-acquire the original signed file before relying on it.

  • A claim reference matches the exact assertion bytes.

  • The asset bytes match the signed data-hash assertion.

  • The BMFF boxes match the signed box-hash assertion.

Signer trust

Whether the checker trusts the signer. The certificate chainCertificate chain: The links from a signer's certificate up to a root authority a checker already trusts. has to end at a source the checker trusts, and must not be revoked.

  • The signer does not chain to caller-supplied trust material.

    Add the signer's certificate to your trust list, or confirm the signer out of band, before trusting the manifest.

  • Supplied revocation evidence marks the signer as revoked.

    Reject the signature. Revocation evidence from the issuer shows the signer's certificate was revoked.

  • The signer chains to caller-supplied trust material.

Missing parts

Whether the file carries a readable claim at all, and whether each ingredientIngredient: A source file used to make new content, recorded in the new content's label with a link to its own label.'s manifest is present.

  • No readable active C2PA claim is present.

    No readable claim was found, so the file shows no checkable label. Sign it, or request a signed copy from the source.

  • An ingredient points to a manifest absent from the store.

    An ingredient's manifest is missing. Re-fetch the full manifest store or the source asset.

Create. Mark. Endure.

Build these checks into your own product with the APIAPI: Application programming interface: a way for one program to ask another to do a job, such as sign a file..