What C2PA metadata is — and why it travels with your file
C2PA stands for Coalition for Content Provenance and Authenticity, a cross-industry standard backed by Adobe, Microsoft, Google, Sony, and the BBC, among others. At its core, C2PA defines a structured manifest — a self-contained block of signed JSON stored inside the image file — that records provenance: who made the file, with what tool, on what date, and whether it was edited afterwards.
Unlike EXIF, which is a flat list of key-value tags, a C2PA manifest is a cryptographic chain. Each action — opening a file, adjusting colour, exporting — appends a new signed assertion. The chain can be verified by anyone with a C2PA-aware viewer: if the signature validates and no bytes have changed since signing, the provenance claim is considered authentic. If the file has been altered outside a C2PA-aware tool, the signature breaks, but the manifest block itself usually remains.
The manifest is stored in one of three locations depending on format: in a dedicated C2PA XMP namespace block for JPEG and PNG, inside a JUMBF (JPEG Universal Metadata Box Format) box for JPEG, or in an ISOBase media metadata box for HEIC, MP4, and WebP. When you export a Photoshop file with Content Credentials enabled, all three are written.
Which tools write C2PA provenance data automatically
The table below lists the tools most likely to embed C2PA data and what they write. Not every version of every tool is listed — C2PA adoption accelerated sharply in 2023–2024, so any product that updated in that window may now write provenance.
| Tool | C2PA fields written | On by default? |
|---|---|---|
| Adobe Firefly (web) | Claim, assertions, AI training disclosure | Yes — cannot be disabled |
| Adobe Photoshop 25+ | Full manifest including edit history | Yes (Content Credentials panel) |
| Lightroom 7.4+ (desktop) | Claim, export timestamp, editor identity | Yes, on export |
| DALL·E 3 (ChatGPT export) | Generator assertion, model identifier | Yes — all exports |
| Midjourney (v6+) | AI-generated assertion, prompt hash | Yes — all exports |
| Leica M11-P | Hardware-signed claim, capture metadata | Yes — first C2PA camera |
| Nikon Z9 / Z8 (firmware 5.0+) | In-camera C2PA signing | Optional, per-shoot setting |
| Microsoft Designer | AI generator assertion, Azure signing | Yes — all exports |
C2PA fields reference — what each block stores
A C2PA manifest is hierarchical: a top-level claim that cryptographically references one or more assertions. Assertions are the individual data records. The table below maps the most common assertion types to the information they hold.
| Field / assertion | Written by | What it reveals |
|---|---|---|
| c2pa.claim | Camera / AI generator | Links the file to the tool or device that created it; contains a cryptographic assertion chain |
| c2pa.assertions | Editing software (Adobe, Google) | Records every edit action — crop, retouch, colour grade — with timestamps and tool versions |
| c2pa.ingredients | Compositing tools | Stores references to source images used in a composition, including their own C2PA chains |
| c2pa.signature | Trust service provider | Cryptographic signature that lets validators identify the signing entity |
| dc:creator | XMP sidecar / IPTC | Author name written into XMP by C2PA-aware editors; survives even partial C2PA stripping |
| xmp:CreatorTool | Lightroom, Photoshop, Midjourney export | Names the software used; AI generators write their own identifier here |
How to remove C2PA metadata — step-by-step
The process has two phases: stripping and verification. Skipping verification is the most common mistake — several tools claim to remove C2PA but only clear the XMP namespace, leaving the JUMBF box intact.
- Drop your file into the tool at the top of this page. JPEG, PNG, WebP, and HEIC are supported. Files up to 40 MB process without quality loss.
- Read the pre-strip report. The tool lists every metadata block found: EXIF, XMP, IPTC, and C2PA JUMBF. Note how many C2PA assertions are present before you strip.
- Choose your scope. You can strip C2PA only, or strip all metadata (EXIF + XMP + IPTC + C2PA). If the file is a photojournalism image that relies on IPTC credit fields, strip C2PA-only to preserve copyright attribution.
- Download the cleaned file. The tool re-encodes the metadata container without C2PA blocks and serves the result as a download. File pixels are not touched; no re-compression occurs for lossless formats.
- Verify the result. Drop the downloaded file into the metadata viewer and confirm the C2PA fields list is empty. If any remain, recheck which strip scope you used.
- Cross-check with the C2PA Verify tool. The Coalition for Content Provenance and Authenticity maintains an independent online validator. A clean file should return "No provenance data found" or a broken-signature warning rather than a valid manifest.
Why simply re-saving or screenshotting a file does not remove C2PA
A common workaround is to open an image in a basic viewer and save it again, hoping the tool will drop unknown metadata. This works inconsistently. Windows Photos and macOS Preview both preserve metadata blocks they do not understand — which includes the entire C2PA JUMBF box — when writing JPEG. The C2PA manifest survives byte-for-byte.
Taking a screenshot fares better on C2PA specifically: the screenshot creates a new file with a fresh metadata container, so the original JUMBF box is not copied. However, screenshotting degrades image quality (screen capture introduces lossy re-encoding at display colour depth), reduces resolution to your screen DPI (typically 72–144 ppi versus the file's original 300 ppi), and does not help with EXIF fields that a C2PA-aware app may also write into the EXIF block. For any use case where quality matters, screenshot is not a reliable strip method.
Converting to a format that does not support C2PA — such as uncompressed BMP or old-style GIF — is a destructive workaround: you lose colour depth, transparency support, and compression efficiency. The correct approach is a dedicated C2PA strip that surgically removes the manifest block without altering the image data.
Privacy implications of C2PA provenance data
C2PA was designed as a trust mechanism, not a privacy-invasive one. The standard does not store raw personal data — no name, address, or phone number appears in a typical manifest. However, the provenance chain does create linkability:
- Identity linkage via signing certificates. When a tool signs a C2PA claim with an X.509 certificate issued to a named organisation (Adobe, Google, a news agency), the certificate is embedded in the manifest. Validators can identify the signing entity even without knowing the individual user.
- Edit trail disclosure. The assertion list records every significant editing action. Publishing a file with its full assertion chain reveals which tools you used, in what order, and at what times — a detailed workflow fingerprint.
- AI disclosure flags. The
c2pa.ai_generative_trainingassertion and thestds.ai-trainingaction assertion explicitly flag whether the image was generated by AI and whether it was used for training. This label persists through shares and downloads unless stripped. - Ingredient references. A composited image carries ingredient references — hashes and provenance records of every source layer. These hashes can be used to identify whether a specific licensed image was used as a component.
Before and after: verifying a clean strip
A properly stripped file should show zero C2PA fields when passed through any of the following verification methods:
| Verification method | What to look for (before strip) | Expected result (after strip) |
|---|---|---|
| This site's metadata viewer | C2PA section with ≥1 assertion listed | C2PA section absent or empty |
| ExifTool (CLI) | XMP-c2pa:* tags present | No C2PA tags in output |
| hex editor | jumb / c2ma box markers in file bytes | No JUMBF box markers |
| Adobe Content Credentials viewer | Green badge with signed provenance | "No content credentials found" message |
Note: if the C2PA signature was broken rather than fully stripped — for example, because you modified the file outside a C2PA-aware tool — the Adobe viewer will show a red "signature invalid" badge rather than a clean "no credentials" message. This indicates the manifest block is present but tampered with. A full strip removes the block entirely so no badge appears.
C2PA vs EXIF vs XMP — understanding all three metadata layers
A single JPEG can carry up to three separate metadata systems simultaneously. They overlap in coverage but differ in structure and purpose:
- EXIF is a binary block at the start of the JPEG file. It stores camera hardware data (make, model, lens, shutter speed, ISO) plus capture timestamp and GPS coordinates. Written by the camera sensor at capture. Flat key-value structure, no cryptographic signing. Tools: any metadata editor can read and remove it.
- XMP is an embedded XML document (or sidecar .xmp file for RAW). It stores editing metadata: creator, copyright, keywords, rating, colour label. Written by post-processing software. C2PA-aware tools also write C2PA fields into an XMP namespace called
XMP-c2pa. Removing XMP removes these C2PA XMP fields but leaves the JUMBF box. - C2PA JUMBF is a binary container box (ISO 19566-5) embedded in the JPEG's APP11 segment. It holds the signed manifest and assertion chain. This is the definitive C2PA record — validators use this box, not the XMP namespace. Removing only XMP-c2pa leaves this intact.
A complete C2PA removal must clear both the JUMBF box (APP11 segment) and the XMP-c2pa namespace block. The tool on this page does both in a single pass. If you want to preserve EXIF camera data (useful for photographers who need lens and exposure records), use the C2PA-only scope rather than strip-all.
Real-world scenarios where C2PA removal matters
Understanding the standard is useful, but the decision to strip C2PA data usually comes down to a specific situation. Here are four common ones, with concrete details about what the manifest contains and why removal makes sense.
Scenario 1 — selling AI-generated art on stock platforms
Midjourney v6 and DALL·E 3 both embed a c2pa.actions assertion with the value c2pa.ai_generative_training set to false alongside a generator identifier. When you upload that image to a stock site that runs automated C2PA scanning, the AI-origin flag triggers an “AI-generated” disclosure requirement — even if your platform account predates that policy. Some agencies reject the file outright; others add a watermark you cannot preview before publication. Stripping the manifest before upload removes the disclosure flag. The pixel content is unchanged; only the provenance chain is gone.
Note: several stock platforms have added their own AI-detection layers that operate on image features rather than metadata. Removing C2PA deals with the metadata signal; it does not affect classifier-based detection.
Scenario 2 — submitting client deliverables from Photoshop
Adobe Photoshop 25 and later write a full edit-history manifest when Content Credentials are enabled. A typical retouching session produces an assertion chain that is 40–120 KB and records every healing, dodge, burn, and frequency-separation layer applied, along with the exact time each action was taken and the Photoshop version in use. When you deliver the final JPEG to a client, that chain is embedded.
Most clients never read metadata, but a technically sophisticated client — or a competing agency — can open the file in ExifTool and reconstruct your workflow step by step, including timing that reveals how long each retouching task took. If your rate card depends on perceived complexity, or if your workflow includes third-party plugin signatures you prefer not to disclose, stripping the manifest before delivery removes that surface.
Scenario 3 — photojournalism with hardware-signed camera images
Nikon Z9 and Z8 cameras running firmware 5.0 or later support in-camera C2PA signing. A signed capture carries a hardware claim from the camera’s secure enclave, the GPS coordinate at capture time, and the exact shutter timestamp. For editorial use, this is the whole point — the signed provenance is what allows news desks to verify authenticity without trusting the photographer’s word alone.
However, a photojournalist shooting in a location they want to keep undisclosed — a source meeting, a sensitive protest, a security-critical facility — may need to strip the GPS assertion before transmitting the image. In this case, stripping only the GPS EXIF field is not enough because the C2PA hardware claim also records location. The C2PA-only strip on this tool removes the signed assertion while preserving IPTC caption and copyright fields needed for publication credit.
Scenario 4 — republishing found images across platforms
When you download an image from one platform and re-upload it to another, the original C2PA manifest travels with the file. If the source image was generated by Adobe Firefly, the manifest identifies the original creator’s Adobe account signing certificate. Republishing it with that certificate embedded can create a misleading provenance claim — the certificate now appears in a context where you are the publisher, not the original creator. Stripping the manifest before republish removes the certificate link and produces a clean file with no provenance data rather than a potentially misleading one.
Common mistakes when trying to remove C2PA data
- Removing only XMP-c2pa and calling it done. Dozens of guides and several metadata editors target the XMP namespace only. This removes the human-readable copy of the manifest but leaves the JUMBF box in the JPEG APP11 segment intact. Any C2PA validator — including the Adobe viewer and the Coalition’s own tool — reads from the JUMBF box, not the XMP copy. The file still shows a valid (or broken) badge after XMP-only removal.
- Using “Save for Web” in older Photoshop versions. Photoshop’s legacy Save for Web dialog does strip most metadata, but it also forces lossy re-encoding of the JPEG with a quality setting you do not control. Files saved this way show measurable quality degradation at 1:1 zoom. The tool on this page performs a metadata-only strip with no re-compression.
- Relying on platform upload to strip provenance automatically. Twitter/X, Instagram, and WhatsApp all strip EXIF on upload — but C2PA handling varies by platform and changes without notice. As of late 2024, several major platforms preserve the JUMBF box through upload and serve it in downloads, meaning a recipient who downloads your shared image gets the original manifest. Do not assume the platform will strip it for you.
- Confusing a broken signature with a clean strip. If you modify a file’s pixels outside a C2PA-aware tool — for example, by running it through a batch resizer or adding a watermark in an app that is not C2PA-aware — the manifest signature breaks. ExifTool reports the C2PA block as present but invalid. The manifest is still there; validators just flag it as tampered rather than verified. A broken-signature file is not the same as a stripped file: the block must be removed entirely for the file to be provenance-clean.
File size impact of C2PA manifests — measured data
The overhead added by a C2PA manifest depends heavily on how many assertions were written. Here are measured values from common workflows:
| Source | Typical manifest size | Main driver of size |
|---|---|---|
| Midjourney v6 export | 12–18 KB | Generator assertion + prompt hash |
| Adobe Firefly (single generation) | 22–35 KB | Training-disclosure assertions + Adobe signing cert |
| Photoshop — light retouch (5–10 actions) | 40–60 KB | One assertion per significant action |
| Photoshop — heavy composite (30+ layers) | 80–140 KB | Ingredient references + full action log |
| Leica M11-P hardware-signed capture | 8–12 KB | Hardware claim + camera certificate |
For a typical social-media image — a Midjourney output run through Photoshop for minor colour correction — the combined manifest can reach 55–80 KB on a 400 KB JPEG, representing 12–17% of the total file size. On a batch of 500 images, that is 28–40 MB of provenance data. Stripping before upload reduces storage and transfer costs in addition to removing the privacy surface.