C2PA Specification and Architecture Guide
A technical reference for the Coalition for Content Provenance and Authenticity (C2PA) metadata structures, JUMBF packaging, assertion taxonomy, and JSON manifest schemas.
1. C2PA Architecture Overview
C2PA defines an open technical standard that enables creators and publishers to attach cryptographically verifiable provenance to digital media.
+-------------------------------------------------------------------+| Media Container (JPEG, PNG, MP4, WebP, AVIF) || || +-------------------------------------------------------------+ || | C2PA Manifest Store (JUMBF Superbox) | || | | || | +-------------------------------------------------------+ | || | | Active Manifest | | || | | - Claim Generator (e.g. Adobe Photoshop, Credentio) | | || | | - Signature & Cert Chain (X.509, TSA timestamp) | | || | | - Assertions (actions, hash, ingredients, AI flags) | | || | +-------------------------------------------------------+ | || | | || | +-------------------------------------------------------+ | || | | Ingredient Manifests (Parent / Input Assets) | | || | +-------------------------------------------------------+ | || +-------------------------------------------------------------+ |+-------------------------------------------------------------------+2. Container Embeddings
C2PA packages manifests inside ISO/IEC 19566-5 JPEG Universal Metadata Box Format (JUMBF) structures:
- JPEG: APP11 application markers (
0xFFEB) with JUMBF superbox encapsulation (0x6A756D62). - PNG: Dedicated chunk types
caPt(Content Authenticity Passthrough) orcaPI. - MP4 / MOV: ISOBMFF
uuidbox keyed to C2PA UUIDd8f03db5-4c9b-4263-8e54-11351c7b73d9, or rootc2pabox. - WebP: RIFF container with a
JUMBchunk identifier. - AVIF / HEIC: BMFF item references referencing the
c2pametadata item. - Standalone: Files with
.c2paextension containing the raw serialized manifest store.
3. Schema Variations: C2PA v1.x vs v2.x
Parsers must handle both legacy C2PA v1 schemas and modern C2PA v2 schemas resiliently:
| Feature | C2PA v1 Schema | C2PA v2 Schema |
|---|---|---|
| Claim Block | claim object |
claim.v2 or claim |
| Generator Info | claim.claim_generator_info (object or array) |
Array of { name, version } objects |
| Certificate Info | signature_info.issuer (flat string) |
signature_info.certificateInfo.issuer.CN |
| Assertions Format | Key-value dictionary indexed by URI | Array of { label, data } items |
| Action Assertion | c2pa.actions |
c2pa.actions.v2 |
| Validation Output | validation.status array |
Categorized validationResults.{success, failure, informational} |
4. Standard Assertions Dictionary
c2pa.actions/c2pa.actions.v2: Records editing history (created, edited, converted, color_adjustments, cropped).c2pa.hash.data/c2pa.hash.bmff.v3: Cryptographic digest over the asset content bytes for tamper detection.c2pa.ingredient: References upstream source assets, thumbnail representations, and prior manifests.c2pa.training-mining: Machine learning training and data mining consent declarations.c2pa.digital_source_type: Standard IPTC digital source categorization (e.g. digitalCapture, trainedAlgorithmicMedia).