C2PA — the standard behind Adobe's Content Credentials — attaches a signed manifest to a file describing how it was made and edited. Because it is structured data embedded in the container (JUMBF boxes in JPEG, caBX chunks in PNG, and similar), removing it is a parsing-and-editing problem, not a pixel problem. That makes it far more tractable than a watermark, with one important caveat we'll get to.
C2PA is metadata, not a watermark
This distinction matters more than any other point on this page. A C2PA manifest is a record bolted onto the file. A SynthID-class watermark is baked into the pixels. Stripping the manifest cleanly removes the provenance record but does nothing to an embedded signal — and vice versa. A file can carry both, one, or neither, so a real solution has to handle them as separate layers.
How a structural strip works
- Detect the containersWalk the file structure for C2PA/JUMBF markers, linked-manifest URLs, and PNG caBX chunks.
- Choose lossless where possibleFor supported JPEG/PNG, provenance segments can be excised without re-encoding, preserving image quality.
- Re-encode as fallbackFor other containers, a clean re-encode drops the manifest along with other metadata.
- Confirm and reportRe-scan to confirm the markers are gone and record what was removed.
The limits worth knowing
- Platforms can re-attach or re-derive provenance after upload, so a locally clean file may be re-tagged.
- Removing C2PA does not remove a pixel watermark that may also be present.
- Provider terms may prohibit obscuring provenance; the technical ability to strip it does not grant the right to.
Best-effort, multi-layer, and reported honestly — originals always preserved.