Skip to main content
0byte
The standard

What is C2PA?

C2PA — the Coalition for Content Provenance and Authenticity — is the open standard for proving where a piece of content came from. A C2PA manifest is a cryptographically signed record embedded in a media file: who made it, with which tool or model, and when. Any validator can check it. It has one well-known weakness — platforms strip metadata on upload, and the manifest goes with it.

What a manifest actually contains

The vocabulary is small once the pieces are named. Four terms cover almost everything you will read in the specification:

  • Manifest — the whole signed package embedded in the file.
  • Claim — the statement being signed: which assertions apply, and hashes binding them to this exact content.
  • Assertions — the individual facts. One declares the digital source type (this is where “generated by an AI model” lives); others can carry the creator, the actions taken, or a thumbnail.
  • Claim generator — the software and brand credited with producing the content. Note this is separate from whoever holds the signing key.

Content Credentials and C2PA are the same thing

C2PA is the standards body and the specification. “Content Credentials” is the consumer-facing name for the same data, promoted by the Content Authenticity Initiative. If a tool says it writes Content Credentials, it writes C2PA manifests. The two names are used interchangeably throughout this site and in the specification’s own material.

Why signing needs a certificate

A manifest that anyone could write would prove nothing. What makes it evidence is the signature: an X.509 certificate signs the claim, so altering one pixel of the content or one field of the claim breaks verification.

That is also the standard’s main adoption barrier. Producing manifests means sourcing a certificate whose chain validators trust, holding the private key safely, and maintaining the lifecycle around it. Most teams that want credentials on their output do not want to run a signing authority to get them — which is why managed signing exists.

Why manifests don't survive the internet

A manifest lives inside the file, so it shares the file’s fate. Upload an image to most platforms and it is re-encoded for delivery — resized, recompressed, stripped of metadata it does not need. The credential is metadata it does not need.

Screenshots are worse: a screenshot is a genuinely new file with no relationship to the original bytes. Nothing embedded can survive that, by construction. The manifest is not broken in these cases — it is simply gone, and verification correctly reports that it found nothing.

Soft bindings: the spec's own recovery mechanism

The C2PA specification anticipates this. Alongside the hard binding — the cryptographic hash tying a manifest to exact bytes — it describes a soft binding: an identifier derived from what the content looks like, stored outside the file, so a stripped manifest can be recovered by lookup.

Because it is computed from appearance rather than bytes, a re-encoded or screenshotted copy produces a near-identical value. Look it up in a registry and the original record comes back. 0byte operates such a registry publicly: every stamp writes a fingerprint into an append-only, Ed25519-signed transparency log following the RFC 6962 pattern, and anyone can query it for free.

One honest limit

Any system that works from appearance can be defeated by regenerating the content through another AI model. That is true of soft bindings, watermarks and classifiers alike — we say so rather than let you find out later.

Read a manifest yourself

The tooling is free and the format is open, so none of this has to be taken on trust:

# print every manifest in a file c2patool photo.jpg # what you get back: the claim generator, the assertions, # the signature, and whether validation passed

The specification and c2pa-rs, the Rust implementation 0byte signs with, are both public.

Common questions

01
Are Content Credentials and C2PA the same thing?
Effectively, yes. C2PA is the standards body and the technical specification; Content Credentials is the consumer-facing name for the same data, promoted by the Content Authenticity Initiative. A file with Content Credentials is a file with a C2PA manifest.
02
Does C2PA prove content is real, or that it is AI-generated?
Neither, by itself. C2PA records what the signer asserted about how the content was made — including a digital source type that can declare AI generation. It proves that a specific party made that assertion and that nothing has been altered since. Whether you trust the assertion depends on whether you trust the signer.
03
Is C2PA a watermark?
No. A watermark alters the pixels. A C2PA manifest is metadata attached to the file, and it changes nothing about how the content looks. The two are complementary: a watermark survives re-encoding but only covers one vendor’s models, while a manifest is standard and readable by anyone but is removed when a platform strips metadata.
04
Who can read a C2PA manifest?
Anyone. The format is open and the tooling is free — c2patool on the command line, Adobe’s Inspect tool in a browser, or any C2PA-aware viewer. 0byte’s free verification also reads manifests from any signer, not just its own.
05
Does C2PA satisfy the EU AI Act?
C2PA provides the machine-readable marking that Article 50 requires, but the Act also requires that marking be effective and reliably detectable. Since platforms strip metadata, a manifest alone can fail the detectability half. Whether a specific deployment satisfies a given obligation depends on that system — this is not legal advice.

Ready to put credentials on your own output?

No certificate to procure, no spec to learn. Verification stays free for everyone, forever.