Skip to main content
Encypher Logo

C2PA formats we sign and check

Encypher puts a C2PAC2PA: The Coalition for Content Provenance and Authenticity: the group that publishes the open standard for content labels. label on 75+ formats for signing and verification: pictures, sound, video, documents, fonts and text. Most formats keep the label where the C2PA standard says. A few use an experimental spot of ours, marked below.

Text, images, audio, video, documents and fonts can all carry a label: in text it rides in the characters, in every other format it sits inside the file.
One label, many kinds of file. Each kind keeps it in a spot inside the file.
Sign and check
79 formats do both.
Sign
86 formats.
Check
79 formats.
Standard's test
20 media typesMIME type: The standard name for a file format, such as image/jpeg or audio/wav, that software uses to decide how to read a file. passed the C2PA Conformance ProgramC2PA Conformance Program: The C2PA's test that checks a product builds and reads labels the way the standard says before it is listed as conforming. under C2PA 2.2.

Coverage by kind of file

Counts are formats that we can both sign and check.

C2PA coverage by kind of file
KindFormatsWhere the label goesFormat guides
Images13A JUMBFJUMBF: JPEG Universal Metadata Box Format: the container that holds a C2PA label inside a media file. box in the image's metadataMetadata: Data stored beside the content in a file, such as author, camera or date. Many tools strip it when they copy or upload a file. spot.JPEG, PNG, WebP, TIFF, AVIF, HEIC, HEIC Sequence, HEIF, HEIF Sequence, SVG, DNG, GIF, JPEG XL
Audio6A chunk or tag the format already has: RIFFRIFF: The chunk-based file layout behind WAV, AVI and WebP., ID3ID3: The tag block in an MP3 file that holds its title, artist and other details. or ISO BMFFBMFF: ISO Base Media File Format: the box structure behind MP4, MOV, HEIF and similar files..WAV, MP3, M4A, AAC, FLAC, MPA
Video7A box in an ISO BMFF file such as MP4 or MOV, where C2PA defines it. Matroska and MXF use an experimental Encypher spot, because C2PA does not define one yet.MP4, MOV, M4V, AVI
Documents37A box Encypher places in the document's own structure.PDF, EPUB, DOCX, ODT, OXPS
Fonts3A table inside the font file.OTF, TTF, SFNT
Text13Characters that draw nothing, inside the text itself.Articles, posts, plain text

Text has no box, so the label rides inside it

Readers see the sentence The pool opens Monday. After it, invisible Unicode characters (variation selectors, starting U+FEFF U+E0133 U+E0122 U+E0140) carry the signed label.
Readers see normal text. The label travels in characters that draw nothing.

An article or a post is just a run of letters. There is no file box to hold a label.

So the C2PA standard for unstructured textC2PA text-provenance standard: The part of the C2PA standard that puts a signed label inside plain text, using invisible Unicode characters. stores it as hidden characters in the text. Encypher wrote that part of the standard.

Read the C2PA standard for text

The standard's test covers a smaller set

The C2PA tests products one media type at a time. Our record covers 20 media types under C2PA 2.2.

The other formats follow the same standard. They are simply not part of that formal test yet. The two counts measure different things.

See the public conformance record

For engineers

Show the technical detail

Every format with its own page

MIME type and where the manifest goes
FormatMIME typeWhere the manifest goes
JPEGimage/jpegJUMBF manifest store in APP11 marker segments
PNGimage/pngJUMBF manifest store in a caBX chunk
WebPimage/webpJUMBF manifest store in a C2PA chunk of the RIFF container
TIFFimage/tiffJUMBF manifest store in a dedicated tag of the TIFF image file directory (IFD)
AVIFimage/avifJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
HEICimage/heicJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
HEIC Sequenceimage/heic-sequenceJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
HEIFimage/heifJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
HEIF Sequenceimage/heif-sequenceJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
SVGimage/svg+xmlBase64-encoded JUMBF manifest store in the SVG metadata element
DNGimage/x-adobe-dngJUMBF manifest store in a dedicated tag of the TIFF/EP image file directory (DNG is TIFF-based)
GIFimage/gifJUMBF manifest store in a GIF application extension block
JPEG XLimage/jxlJUMBF superbox (jumb) at the top level of the JPEG XL box structure
WAVaudio/wavJUMBF manifest store in a C2PA chunk of the RIFF container
MP3audio/mpegJUMBF manifest store in an ID3v2 GEOB (general encapsulated object) frame
M4Aaudio/mp4JUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
AACaudio/aacJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure (AAC audio carried in an MP4 container)
FLACaudio/flacJUMBF manifest store in a leading ID3v2 GEOB frame (MIME application/c2pa); legacy FLAC APPLICATION blocks (app id c2pa) remain readable
MPAaudio/mpaRead as MPEG audio (audio/mpa is an accepted alias of audio/mpeg): JUMBF manifest store in an ID3v2 GEOB frame
MP4video/mp4JUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
MOVvideo/quicktimeJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure (QuickTime uuid atom)
M4Vvideo/x-m4vJUMBF manifest store in a C2PA uuid box in the ISO BMFF structure
AVIvideo/x-msvideoJUMBF manifest store in a C2PA chunk of the RIFF container
PDFapplication/pdfJUMBF manifest store in an embedded file stream with AFRelationship C2PA_Manifest
EPUBapplication/epub+zipJUMBF manifest store in the META-INF/content_credential.c2pa entry of the ZIP package
DOCXapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentJUMBF manifest store in the META-INF/content_credential.c2pa entry of the OOXML ZIP package
ODTapplication/vnd.oasis.opendocument.textJUMBF manifest store in the META-INF/content_credential.c2pa entry of the ODF ZIP package
OXPSapplication/oxpsJUMBF manifest store in the META-INF/content_credential.c2pa entry of the OpenXPS ZIP package
OTFfont/otfJUMBF manifest store in an SFNT table with the tag C2PA
TTFfont/ttfJUMBF manifest store in an SFNT table with the tag C2PA
SFNTfont/sfntJUMBF manifest store in an SFNT table with the tag C2PA

The table lists the formats with a detail page. The full matrix, including each format's accepted spellings (101 in all, counting aliases such as image/jpg), is published at GET /api/v1/capabilities/formats.

Production signing emits C2PA 2.4 by default. Of the 79 formats that sign and verify, 76 sign under that version; the rest sign under an earlier one. Verification does not depend on version.

# Sign any media file. The format is detected from the bytes.
curl -X POST https://api.encypher.com/api/v1/sign/media \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@content.pdf"

# The live list of formats, with sign and verify flags
curl https://api.encypher.com/api/v1/capabilities/formats

Create. Mark. Endure.

Sign your first file for free. Anyone can check it.