Every AI-generated image Pappus produces is stamped with a C2PA content credential — a cryptographic manifest, signed with a real certificate, that records what model generated the image, what prompt was used, when, and on whose behalf. Anyone can verify the credential with the open-source c2patool CLI or by uploading the image to contentcredentials.org.
This post is for marketing operators trying to answer three practical questions: what does the credential actually prove, what doesn't it prove, and when does it matter.
What C2PA is
C2PA is an open specification, maintained by a consortium that includes Adobe, Microsoft, the BBC, Sony, OpenAI, Intel, and others. It defines a cryptographic manifest embedded in the image file (PNG / JPEG / WebP all supported) plus a chain of signed assertions that record how the image came to be: which model produced it, with which seed, at which time, on which platform.
The signing certificate is the trust anchor. Pappus's manifests are signed with a real certificate issued for our production environment; the public key chain is verifiable from the embedded manifest. A forged manifest fails verification, so the assertion "Pappus generated this image" can be checked without trusting anything we publish on our marketing site.
What C2PA isn't
Three common misreadings, in increasing order of how often we get the question:
- It is not a watermark. A C2PA manifest is metadata, not pixels. A determined adversary can strip the manifest by re-encoding the image. The strip itself is detectable (the image will fail credential lookup), but the manifest does not survive an adversarial crop-screenshot-repost cycle. SynthID-style pixel watermarking is the complementary tech for that adversary; we document the watermark posture truthfully in every manifest (today:
synthid_applied=False; we don't claim a watermark we did not apply). - It is not a deepfake detector. The credential tells you what tool made the image, not whether the image depicts something real. A C2PA-stamped photo of a public figure saying something they did not say is still a credential-stamped photo. The provenance signal is "this was AI-generated", not "this is true."
- It is not a license. The credential records provenance, not usage rights. You still need to confirm the model's commercial-use license — we ship that information in the OAuth-connection page for each image provider.
When does the credential matter
Three real-world cases where a marketing team has reached for the credential since we shipped C2PA:
- Regulator asks. A regulated industry team was asked to demonstrate that a campaign image was AI-generated. They downloaded the image from their LinkedIn post, dropped it into contentcredentials.org, and showed the regulator a signed manifest naming Pappus, the model, the date, and the operator who approved it.
- Customer disputes provenance. A customer claimed a competitor had copied a campaign image. The customer loaded both images into the verifier; one had a signed manifest dated three weeks earlier, the other did not. The provenance chain made the dispute one-sided in under a minute.
- Internal audit trail. A team rotated through three different image generators (Flux, Imagen, Recraft) over a quarter and lost track of which model produced which image. A nightly job reads the C2PA manifests off every stamped asset and reconstructs the model-by-spend report directly from the asset trail.
How to verify a Pappus-generated image
Two paths, both free, both work offline-ish:
- contentcredentials.org — drop the image into the browser, get a human-readable credential view. No install.
brew install c2patool(or the equivalent for your platform), thenc2patool image.png. Prints the full manifest JSON, the assertion chain, and the signing certificate. Scriptable.
Both paths surface the operator-supplied prompt, the model name, the asset SHA-256, and the approval event id linking back to the Pappus audit log entry. The audit log entry itself is HMAC-signed on the server side; the signature is verifiable through our disclosure channel.
What we're shipping next
Two things on the roadmap that this post is partly a prompt for: SynthID pixel watermarking on top of the C2PA manifest (so the provenance survives a crop-screenshot-repost cycle), and a public verifier page hosted on verify.pappus.tech so you do not have to leave the Pappus surface to check an image. Neither is shipped yet; this post will update when they are.