Content Credentials (C2PA)
Content Credentials are a signed record, inside the file, of how it was made: the open standard of the Coalition for Content Provenance and Authenticity (C2PA), which Adobe, OpenAI, Google and camera makers use. Every Kennmarq.com mark adds one, signed and time-stamped, saying the file was made or edited by AI.
In short
- What it is: a manifest embedded in the file: claims about its origin, signed so any change shows.
- What ours says: made or edited by AI, by which provider's AI system and model, when, and that a watermark was added.
- What it never says: who made the file, or with which prompt.
- Laws: the signed metadata layer the EU AI Act's Code of Practice names, and the carrier of California's latent disclosure.
What a Kennmarq.com credential carries
| Part | What it says |
|---|---|
c2pa.actions.v2 | How the file came to be: c2pa.created (or c2pa.opened when it already had credentials), with the IPTC digital source type (trainedAlgorithmicMedia for made by AI, compositeWithTrainedAlgorithmicMedia for edited or combined with AI), the time, and your app's name and version as the software agent. Then the watermark: c2pa.watermarked.bound for an image's, c2pa.watermarked.unbound for a video's or a song's. |
c2pa.soft-binding | An image's watermark algorithm and ID, so a reader can find this credential from the pixels alone. |
com.kennmarq.generator | Your company (the provider), the model and its version, when you send them. |
com.kennmarq.watermark | A video's watermark ID. |
Ingredients | Credentials the file already carried, from a model provider's API for example, kept as they were. |
Signature and time-stamp | Our signature, with our published certificate chain, and an RFC 3161 time-stamp from our own server. |
Images also carry IPTC's digital source type in their XMP metadata, the plain field many platforms read to label AI content. Every signature and time-stamp is in our public transparency log before the file reaches you.
Reading one
- In a browser: drop an image on kennmarq.com/check. It reads the credential and the watermark, and finds the credential through the watermark when the metadata is gone.
- On the command line, with the C2PA's open-source
c2patool:
c2patool image.marked.png- Through the API, with a signed result: POST /v1/verify.
Why a watermark too
Metadata is easy to lose: most platforms strip it when they re-encode an upload. The invisible watermark carries an ID in the content itself, and the ID leads back to the credential we keep for the file (durable credentials). That's why the EU's Code of Practice asks for both.
Adding one
curl https://api.kennmarq.com/v1/mark \
-H "Authorization: Bearer $KENNMARQ_API_KEY" \
-F file=@image.png -F source=created \
-F provider="Acme Inc." -F app_name="Acme Studio" -F app_version="2.1" \
-o image.marked.png