Checker › Guides › C2PA, XMP, EXIF Provenance
C2PA, XMP, EXIF: where content provenance actually lives in a file
“Check the metadata” is easy advice and vague. A file has exactly three places where provenance is written, each with a different format, a different trust level, and a different failure mode. This is the field guide the SiteCredly checker itself works from — including real parse outputs from real files, so you can see precisely what a checker sees.
1. The C2PA manifest — the signed record
C2PA (Coalition for Content Provenance and Authenticity) is the strongest of the three because it is signed. A manifest is stored in JUMBF boxes — in a JPEG, inside an APP11 segment; in an MP4, inside a UUID box — and it carries a claim: the generating software (the claim_generator field), assertions about how the content was made, and a cryptographic signature over all of it. Edit the pixels without re-signing and the manifest no longer validates. That tamper-evidence is why regulators and platforms treat C2PA as the reference form of machine-readable provenance, and why this site's checker scores its absence — when other provenance exists — as a MEDIUM finding rather than a failure: XMP/EXIF provenance is real, C2PA is simply stronger. The full hosted implementation of these rules is maintained by DisclosureGuard, whose published methodology this guide follows.
2. The XMP packet — the working note
XMP is an XML packet embedded in the file. In a JPEG it lives in an APP1 segment (the same segment family as EXIF, told apart by its header); in a PNG it rides in an iTXt chunk under the keyword XML:com.adobe.xmp. The field that matters most for disclosure is xmp:CreatorTool — where Adobe's tools, Firefly included, write their own name. XMP is unsigned: anyone can edit it with a text editor. But as a declaration it is exactly what disclosure law asks for — the maker stating, in the file, what made it. The sample below shows a real one.
3. EXIF fields — the camera's notebook
EXIF began as camera data (make, model, exposure) inside a TIFF-structured block, usually in the JPEG's first APP1 segment. The disclosure-relevant fields are Software, Artist, and UserComment — places where editing and generation tools sometimes record themselves. EXIF is the weakest of the three: unsigned, frequently stripped by platforms, and trivially editable. A checker reads it as a signal, never as proof.
What a checker actually sees — two real files
These are the unedited parse outputs of this site's own sample files, produced by the same engine as the checker on this page. Download the samples from the checker hub and reproduce them.
| Field | plain.jpg (bare creative) | xmp-firefly.png (labeled pipeline) |
|---|---|---|
| Detected type | image-jpeg | image-png |
| C2PA manifest | no | no |
| XMP packet | no | yes |
| EXIF provenance | no | no |
| Generator named | — | Adobe Firefly (from xmp:CreatorTool) |
| Generator text indicators | none | “Adobe Firefly”, “Firefly” |
| Score under EU pack | 40 / D (with no label attached) | 90 / A (with disclosure copy attached) |
Source: SiteCredly checker engine output for its bundled sample files, rules v2026.10.2. The PNG's only finding is the missing C2PA upgrade — its XMP declaration plus visible disclosure copy satisfies the machine-readable and visible-label duties.
One more signal the table doesn't show: generator text. Even without structured metadata, files often contain plain-text traces — a tool name in a comment, a “SynthID” reference. The checker scans raw bytes for a known-generator list and reports them as indicators, clearly labeled as text traces rather than structured provenance. Pixel-level watermarks such as SynthID itself cannot be read by file parsing at all; the checker says so on every report rather than pretending otherwise.
Inspect a file yourself
Drop a creative here (JPEG, PNG, WebP, MP4) — or
Runs entirely in your browser — the file never leaves your device.
Frequently asked questions
What is a C2PA manifest?
A C2PA manifest is a signed block of content-credentials data embedded in a file. It records who made the content, what tool was used, and what edits happened, in a form that breaks visibly if the file is altered.
Where does XMP live in an image file?
In a JPEG, the XMP packet sits in an APP1 segment near the start of the file. In a PNG, it rides in an iTXt chunk under the keyword 'XML:com.adobe.xmp'. Tools from Adobe write the generator's name there, for example in the CreatorTool field.
Can EXIF prove an image is AI-generated?
No. EXIF fields like Software or Artist can name a tool, but EXIF is unsigned and trivially editable. It is a clue for disclosure checking, not proof — and this site's checker treats it that way.
If a file has no C2PA, no XMP and no EXIF, is it human-made?
Not necessarily. It means the file carries no declared provenance — plenty of human photos have none, and plenty of AI exports lose theirs when a platform strips metadata. Absence of provenance is a disclosure gap, not a detection result.
One file is a spot check. A full disclosure audit reads every creative in the campaign and maps each one against the rules that apply where it runs.
Get the full website scan Get a full disclosure auditRelated: AI ad disclosure rules, explained by jurisdiction — the laws that make this metadata matter.