C2PA Tool FAQs
- How can I inspect a file locally using C2PA Tool?
- How do I load trust lists with C2PA Tool?
- Does a new manifest automatically inherit its parent's title?
- How can I override an ingredient's title?
- Does the overall validation state describe only the active manifest?
- How do I supply my own thumbnail?
- How can I sign a TIFF sample and configure created assertions?
- Why does C2PA Tool behave differently when launched by my application versus on the command-line?
- Can I create sidecar manifests for unsupported file types?
How can I inspect a file locally using C2PA Tool?
Use the open-source C2PA Tool CLI to inspect a file on your own machine:
c2patool file.jpg --detailed
This avoids uploading the asset to a web inspection service. It is not a promise that every configuration or operation is network-free; for example, the trust initialization command fetches trust lists. Local inspection also does not by itself establish that the signer is trusted or that the depicted content is true.
Source: Local CLI inspection command; September 11, 2026
How do I load trust lists with C2PA Tool?
You have to initialize trust lists explicitly. Earlier versions required supplying trust
anchors through settings or the command line. Use c2patool init trust to fetch or update trust lists and store them for future calls:
c2patool init trust
Use a raw PEM URL when supplying a trust-anchor link.
For more control, pass a settings file with --settings; TOML settings are
passed through to the SDK. Supply the concatenated CA and TSA lists when needed to include TSA intermediate certificates.
Trust sidecars are loaded automatically on subsequent runs from the same
directory as the settings file.
For ingredient validation during signing, configure both the C2PA Trust List and C2PA TSA Trust List.
Sources:
- Explicit trust configuration; April 1, 2026
- Trust initialization; June 19, 2026
- Ingredient and timestamp trust; May 27, 2026
- Raw PEM URL; August 6, 2026
- Initialization command; August 6, 2026
- Settings option; August 6, 2026
- Persistence and concatenated lists; August 6, 2026
Does a new manifest automatically inherit its parent's title?
No. The parentOf ingredient's title is not automatically assigned to the
new claim's dc:title. Without an explicit title in the manifest definition,
the output filename is used.
Set the desired title in the new manifest definition rather than relying on inheritance. This sets the active manifest's title; changing an ingredient's title is a separate operation.
Sources:
How can I override an ingredient's title?
Export a signed asset as an ingredient using the --ingredient option.
The resulting folder contains ingredient JSON, a thumbnail, and the manifest binary. Edit the title in the ingredient JSON, then reference the folder through ingredient_paths in the new manifest definition like this:
"ingredient_paths": ["./ingredient-folder"]
Sources:
Does the overall validation state describe only the active manifest?
No. validation_state also considers ingredient deltas, so an ingredient
failure can affect the overall state.
For the active manifest alone, inspect the success, informational, and
failure arrays in validation_results.activeManifest. Do not interpret
an aggregate Invalid result as proof that the active manifest itself
has a signature failure.
Display each manifest's state independently and distinguish valid-but-untrusted manifests from trusted ones. That is presentation guidance, not a rule that cryptographic validity establishes signer trust.
Sources:
- Aggregate state clarification; May 27, 2026
- Active-manifest results; May 28, 2026
- Ingredient deltas; May 28, 2026
- Per-manifest presentation guidance; May 27, 2026
How do I supply my own thumbnail?
Add a thumbnail object to the manifest definition. Its identifier is
a file path relative to the manifest
definition file:
"thumbnail": {
"format": "image/jpeg",
"identifier": "thumbnail.jpg"
}
This is a field excerpt to include in a complete manifest definition. For example:
c2patool sample.mp4 -m manifest.json -o sample-signed.mp4
Use the same approach to define ingredient thumbnails. This provides an explicit thumbnail; it does not explain or promise automatic thumbnail generation for every input format.
Source: custom thumbnails and relative paths, August 31, 2026
How can I sign a TIFF sample and configure created assertions?
C2PA Tool supports reading and writing TIFF files. For example:
c2patool sample.tiff \
--settings settings.toml \
--manifest manifest.json \
--output signed.tiff
For that command, the source asset becomes a parentOf
ingredient and the tool automatically adds the c2pa.opened action.
You can omit settings when using the default key and certificate, but do
not assume those defaults are trusted or qualify a product for conformance.
When the implementation needs to designate created rather than gathered assertions, use settings such as:
[builder]
created_assertion_labels = [
"c2pa.actions",
"c2pa.ingredient"
]
This is just an example. Select the assertions appropriate to the implementation.
Sources:
- TIFF signing command and defaults; September 15, 2026
- Created assertion settings; September 15, 2026
Why does C2PA Tool behave differently when launched by my application versus on the command-line?
Check the actual executable and version your application launches, rather than only the version available in your terminal.
For example in the reported case, the application launched C2PA Tool 0.26.1, although the user expected 0.26.41. Launching 0.26.41 resolved the missing timestamp assertion.
Source: confirmed resolution, April 22, 2026
Can I create sidecar manifests for unsupported file types?
Yes. To read the asset with its sidecar, use:
c2patool file.obj --external-manifest file.c2pa
Sources: