C2PA Content Credentials is a cryptographic content-authenticity mechanism that records which tool created, edited and signed an image. You can use Credentio to inspect this information locally, making it suitable for sensitive images that should not be uploaded to online services. However, image-provenance verification does not automatically prove that the scene depicted is real or that the image is not a deepfake.
How do C2PA Content Credentials work?
C2PA uses a structure called a C2PA Manifest, while Content Credentials is the more accessible name used for that structure. A Manifest contains assertions —statements about provenance, devices, software, editing operations, component images and processing times. A file can contain multiple Manifests to reflect successive steps in the content lifecycle (according to the C2PA Specifications).
The core process has four steps:
- The capture tool or editing software creates provenance information.
- That information is packaged into a Manifest, together with a hash linked to the image data.
- The Manifest is signed with the private key of the issuing software, device or organization.
- The verification application checks the signature, hash, digital certificate and trust list.
If the image data or Manifest is changed, the hash no longer matches and the signature check reports an error. C2PA can also record whether an image was created entirely with AI, involved AI during editing, or was only cropped, recolored and resized.
The important point is that C2PA provides a trust signal, not a verdict on the content. A valid Manifest indicates that the signed data has not changed since signing and that the certificate may be trusted according to the relevant list. It does not establish that the signer accurately described events in the real world, nor does it replace journalistic verification, witness corroboration or forensic analysis.
How to verify image provenance locally with Credentio

1. Prepare the environment
Credentio is an open-source C++ library from Google for analyzing and verifying C2PA. According to its public repository, the tool requires Git, Clang and Bazel, and currently supports formats including JPEG, PNG, AVIF, HEIC, WebP, TIFF, MP4 and PDF. The project is under active development, so its interface or behavior may change (according to the Credentio repository on Google Source).
git clone https://mediaprovenance.googlesource.com/credentio
cd credentio
bazel build tools:c2pa_validate
The command above compiles the command-line program c2pa_validate. You should run it in a separate development environment, review the source code and pin the version before incorporating it into a production workflow. Credentio does not ship with a preconfigured trust-certificate list; you must obtain the official Trust List and TSA Trust List from C2PA.
2. Run an image check
For a JPEG image located at /duong-dan/anh.jpg, you can run:
bazel run tools:c2pa_validate --
--asset=/duong-dan/anh.jpg
--claim_signer_trust=/duong-dan/claim-trust.pem
--tsa_trust=/duong-dan/tsa-trust.pem
The tool reads the Manifest, assertions, signature and certificate chain locally. When reviewing the results, distinguish among these three levels: Well-Formed means that the file has a readable structure; Valid means that the signature, hash and required checks are valid; Trusted means that the signing certificate can be linked to the selected Trust Anchor (according to the C2PA security documentation).
To test the results, try three samples: an image with a valid Credential, an image changed after signing, and an image with no C2PA data. The expected results are, respectively, valid, an integrity error, and no Credential found. This test helps prevent you from confusing “no data” with “tampered data.”
Limitations of using C2PA to identify deepfakes
No Credential does not mean an image is fake
Many social-media platforms, editing applications and format-conversion systems can strip metadata. Compression, resizing or passing an image through a workflow that does not support C2PA can also remove the Manifest. Therefore, an image without content credentials represents only a state of no provenance evidence yet, not evidence that the image is fake. When optimizing images for a website, check the export workflow to avoid accidentally removing metadata; you can also see how to reduce server load when uploading images.
Verifying a signature still requires assessing the signer
A valid signature only indicates that the data was signed by an identity or tool with an appropriate certificate. You must still ask: Is the organization trustworthy? Is the editing information complete? Does the image fit its context? For content involving fraud, impersonation or the circulation of urgent information, combine provenance verification with independent source checks; see also how to protect businesses from impersonation scams.
C2PA is also not a pixel-analysis-based deepfake detector. It does not automatically search the Internet for the original image, determine whether a face has been replaced, or confirm that a claim shown in the image is true. When building content-processing systems, combine Credentials with identity controls, access management and software supply-chain protection, such as the principles described in protecting servers against AI-powered attacks.
Practical checklist: Keep the original file; inspect the manifest with a local tool; verify the signature status and trust anchor; review the editing history; cross-check the publisher’s identity; and only then assess the content against independent sources. This is the proper way to use C2PA: to improve traceability and detect tampering, rather than treating it as an absolute “anti-counterfeit seal.”

