This page is generated from the unmodified JSON schema generated from c2pa-rs on 05/09/2025.
Use a ManifestDefinition to define a manifest and to build a ManifestStore. A manifest is a collection of ingredients and assertions used to define a claim that can be signed and embedded into a file.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| assertions | An array of AssertionDefinition | A list of assertions |
NO | Empty array |
| claim_generator_info | An array of ClaimGeneratorInfo | Claim Generator Info is always required with at least one entry |
NO |
Object with properties:
|
| claim_version |
Integer
(uint8) Minimum: 0.0 |
The version of the claim. Defaults to 2. |
NO | N/A |
| format | String | The format of the source file as a MIME type. |
NO | application/octet-stream |
| ingredients | An array of Ingredient | A List of ingredients |
NO | Empty array |
| instance_id | String | Instance ID from |
NO | xmp:iid:f8f5adf0-f9ee-4168-8f62-520d718bf08f |
| label | String | Allows you to pre-define the manifest label, which must be unique. Not intended for general use. If not set, it will be assigned automatically. |
NO | N/A |
| metadata | Array of AssertionMetadata | Optional manifest metadata. This will be deprecated in the future; not recommended to use. |
NO | N/A |
| redactions | Array of string | A list of redactions - URIs to redacted assertions. |
NO | N/A |
| thumbnail | ResourceRef | An optional ResourceRef to a thumbnail image that represents the asset that was signed. Must be available when the manifest is signed. |
NO | N/A |
| title | String | A human-readable title, generally source filename. |
NO | N/A |
| vendor | String | Optional prefix added to the generated Manifest Label This is typically a reverse domain name. |
NO | N/A |
Identifies a person responsible for an action.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| credentials | Array of HashedUri | List of references to W3C Verifiable Credentials. |
NO | N/A |
| identifier | String | An identifier for a human actor, used when the “type” is |
NO | N/A |
This allows the assertion to be expressed as CBOR or JSON. The default is CBOR unless you specify that an assertion should be JSON.
Any of the following:
Defines an assertion that consists of a label that can be either a C2PA-defined assertion label or a custom label in reverse domain format.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| data | AssertionData | Description TBD. |
YES | N/A |
| kind | ManifestAssertionKind | Description TBD. |
NO | N/A |
| label | String | Description TBD. |
YES | N/A |
The AssertionMetadata structure can be used as part of other assertions or on its own to reference others
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| dataSource | DataSource | Description TBD. |
NO | N/A |
| dateTime | DateT | Description TBD. |
NO | N/A |
| localizations | Array of object | Description TBD. |
NO | N/A |
| reference | HashedUri | Description TBD. |
NO | N/A |
| regionOfInterest | RegionOfInterest | Description TBD. |
NO | N/A |
| reviewRatings | Array of ReviewRating | Description TBD. |
NO | N/A |
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| type | String | Description TBD. |
YES | N/A |
| version | String | Description TBD. |
NO | N/A |
Description of the claim generator, or the software used in generating the claim. This structure is also used for actions softwareAgent
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| icon | UriOrResource | hashed URI to the icon (either embedded or remote) |
NO | N/A |
| name | String | A human readable string naming the claim_generator |
YES | N/A |
| operating_system | String | A human readable string of the OS the claim generator is running on |
NO | N/A |
| version | String | A human readable string of the product’s version |
NO | N/A |
NOTE: This object can have any number of additional user-defined properties.
An x, y coordinate used for specifying vertices in polygons.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| x | Number / double | The coordinate along the x-axis. |
YES | N/A |
| y | Number / double | The coordinate along the y-axis. |
YES | N/A |
A description of the source for assertion data
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| actors | Array of Actor | A list of [ |
NO | N/A |
| details | String | A human-readable string giving details about the source of the assertion data. |
NO | N/A |
| type | String | A value from among the enumerated list indicating the source of the assertion. |
YES | N/A |
A string.
A frame range representing starting and ending frames or pages.
If both start and end are missing, the frame will span the entire asset.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| end | Integer (int32) | The end of the frame inclusive or the end of the asset if not present. |
NO | N/A |
| start | Integer (int32) | The start of the frame or the end of the asset if not present. The first frame/page starts at 0. |
NO | N/A |
A HashedUri provides a reference to content available within the same manifest store.
This is described in [§8.3, URI References], of the C2PA Technical Specification.
[§8.3, URI References]: https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html#_uri_references
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| alg | String | A string identifying the cryptographic hash algorithm used to compute the hash |
NO | N/A |
| hash | An array of integer | Byte string containing the hash value |
YES | N/A |
| url | String | JUMBF URI reference |
YES | N/A |
An Ingredient is any external asset that has been used in the creation of an asset.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| active_manifest | String | The active manifest label (if one exists). If this ingredient has a [ |
NO | N/A |
| data | ResourceRef | A reference to the actual data of the ingredient. |
NO | N/A |
| data_types | Array of AssetType | Additional information about the data’s type to the ingredient V2 structure. |
NO | N/A |
| description | String | Additional description of the ingredient. |
NO | N/A |
| document_id | String | Document ID from |
NO | N/A |
| format | String | The format of the source file as a MIME type. |
NO | N/A |
| hash | String | An optional hash of the asset to prevent duplicates. |
NO | N/A |
| informational_URI | String | URI to an informational page about the ingredient or its data. |
NO | N/A |
| instance_id | String | Instance ID from |
NO | N/A |
| label | String | The ingredient’s label as assigned in the manifest. |
NO | N/A |
| manifest_data | ResourceRef | A |
NO | N/A |
| metadata | AssertionMetadata | Any additional |
NO | N/A |
| ocsp_responses | Array of ResourceRef | Description TBD. |
NO | N/A |
| provenance | String | URI from |
NO | N/A |
| relationship | Relationship | Set to There can only be one parent ingredient in the ingredients. |
NO | componentOf |
| resources | ResourceStore | Description TBD. |
NO | N/A |
| thumbnail | ResourceRef | A thumbnail image capturing the visual state at the time of import. A tuple of thumbnail MIME format (for example |
NO | N/A |
| title | String | A human-readable title, generally source filename. |
NO | N/A |
| validation_results | ValidationResults | Validation results (Ingredient.V3) |
NO | N/A |
| validation_status | Array of ValidationStatus | Validation status (Ingredient v1 & v2) |
NO | N/A |
Represents any changes or deltas between the current and previous validation results for an ingredient’s manifest.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| ingredientAssertionURI | String | JUMBF URI reference to the ingredient assertion |
YES | N/A |
| validationDeltas | StatusCodes | Validation results for the ingredient’s active manifest |
YES | N/A |
Description of the boundaries of an identified range.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| identifier | String | The container-specific term used to identify items, such as “track_id” for MP4 or “item_ID” for HEIF. |
YES | N/A |
| value | String | The value of the identifier, e.g. a value of “2” for an identifier of “track_id” would imply track 2 of the asset. |
YES | N/A |
A string that is one of the following:
A spatial, temporal, frame, or textual range describing the region of interest.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| frame | Frame | A frame range. |
NO | N/A |
| item | Item | A item identifier. |
NO | N/A |
| shape | Shape | A spatial range. |
NO | N/A |
| text | Text | A textual range. |
NO | N/A |
| time | Time | A temporal range. |
NO | N/A |
| type | RangeType | The type of range of interest. |
YES | N/A |
The type of range for the region of interest.
| RangeType | Type | Description |
|---|---|---|
| spatial | string | A spatial range, see [ |
| temporal | string | A temporal range, see [ |
| frame | string | A spatial range, see [ |
| textual | string | A textual range, see [ |
| identified | string | A range identified by a specific identifier and value, see [ |
A region of interest within an asset describing the change.
This struct can be used from [Action::changes][crate::assertions::Action::changes], [AssertionMetadata::region_of_interest][crate::assertions::AssertionMetadata::region_of_interest], or [SoftBindingScope::region][crate::assertions::soft_binding::SoftBindingScope::region].
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| description | String | A free-text string. |
NO | N/A |
| identifier | String | A free-text string representing a machine-readable, unique to this assertion, identifier for the region. |
NO | N/A |
| metadata | AssertionMetadata | Additional information about the asset. |
NO | N/A |
| name | String | A free-text string representing a human-readable name for the region which might be used in a user interface. |
NO | N/A |
| region | An array of Range | A range describing the region of interest for the specific asset. |
YES | N/A |
| role | Role | A value from our controlled vocabulary or an entity-specific value (e.g., com.litware.coolArea) that represents the role of a region among other regions. |
NO | N/A |
| type | String | A value from a controlled vocabulary such as https://cv.iptc.org/newscodes/imageregiontype/ or an entity-specific value (e.g., com.litware.newType) that represents the type of thing(s) depicted by a region. Note this field serializes/deserializes into the name |
NO | N/A |
The relationship of the ingredient to the current asset.
| Relationship | Type | Description |
|---|---|---|
| parentOf | string | The current asset is derived from this ingredient. |
| componentOf | string | The current asset is a part of this ingredient. |
| inputTo | string | The ingredient was used as an input to a computational process to create or modify the asset. |
A reference to a resource to be used in JSON serialization.
The underlying data can be read as a stream via [Reader::resource_to_stream][crate::Reader::resource_to_stream].
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| alg | String | The algorithm used to hash the resource (if applicable). |
NO | N/A |
| data_types | Array of AssetType | More detailed data types as defined in the C2PA spec. |
NO | N/A |
| format | String | The mime type of the referenced resource. |
YES | N/A |
| hash | String | The hash of the resource (if applicable). |
NO | N/A |
| identifier | String | A URI that identifies the resource as referenced from the manifest. This may be a JUMBF URI, a file path, a URL or any other string. Relative JUMBF URIs will be resolved with the manifest label. Relative file paths will be resolved with the base path if provided. |
YES | N/A |
Resource store to contain binary objects referenced from JSON serializable structures
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| base_path | String | Description TBD. |
NO | N/A |
| label | String | Description TBD. |
NO | N/A |
| resources | (Object) | Description TBD. |
YES | N/A |
A rating on an Assertion. See https://c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_review_ratings.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| code | String | Description TBD. |
NO | N/A |
| explanation | String | Description TBD. |
YES | N/A |
| value |
Integer
(uint8)
Minimum: 0.0 |
Description TBD. |
YES | N/A |
A role describing the region.
| Role | Type | Description |
|---|---|---|
| c2pa.areaOfInterest | string | Arbitrary area worth identifying. |
| c2pa.cropped | string | This area is all that is left after a crop action. |
| c2pa.edited | string | This area has had edits applied to it. |
| c2pa.placed | string | The area where an ingredient was placed/added. |
| c2pa.redacted | string | Something in this area was redacted. |
| c2pa.subjectArea | string | Area specific to a subject (human or not). |
| c2pa.deleted | string | A range of information was removed/deleted. |
| c2pa.styled | string | Styling was applied to this area. |
| c2pa.watermarked | string | Invisible watermarking was applied to this area for the purpose of soft binding. |
A spatial range representing rectangle, circle, or a polygon.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| height | Number (double) | The height of a rectnagle. This field can be ignored for circles and polygons. |
NO | N/A |
| inside | Boolean | If the range is inside the shape. The default value is true. |
NO | N/A |
| origin | Coordinate | THe origin of the coordinate in the shape. |
YES | N/A |
| type | ShapeType | The type of shape. |
YES | N/A |
| unit | UnitType | The type of unit for the shape range. |
YES | N/A |
| vertices | Array of Coordinate | The vertices of the polygon. This field can be ignored for rectangles and circles. |
NO | N/A |
| width | Number (double) | The width for rectangles or diameter for circles. This field can be ignored for polygons. |
NO | N/A |
The type of shape for the range.
| ShapeType | Type | Description |
|---|---|---|
| rectangle | string | A rectangle. |
| circle | string | A circle. |
| polygon | string | A polygon. |
Contains a set of success, informational, and failure validation status codes.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| failure | An array of ValidationStatus | Description TBD. |
YES | N/A |
| informational | An array of ValidationStatus | Description TBD. |
YES | N/A |
| success | An array of ValidationStatus | Description TBD. |
YES | N/A |
A textual range representing multiple (possibly discontinuous) ranges of text.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| selectors | An array of TextSelectorRange | The ranges of text to select. |
YES | N/A |
Selects a range of text via a fragment identifier. This is modeled after the W3C Web Annotation selector model.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| end | Integer (int32) | The end character offset or the end of the fragment if not present. |
NO | N/A |
| fragment | String | Fragment identifier as per RFC3023 (XML) or ISO 32000-2 (PDF), Annex O. |
YES | N/A |
| start | Integer (int32) | The start character offset or the start of the fragment if not present. |
NO | N/A |
One or two [TextSelector][TextSelector] identifiying the range to select.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| end | TextSelector | The end of the text range. |
NO | N/A |
| selector | TextSelector | The start (or entire) text range. |
YES | N/A |
A temporal range representing a starting time to an ending time.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| end | String | The end time or the end of the asset if not present. |
NO | N/A |
| start | String | The start time or the start of the asset if not present. |
NO | N/A |
| type | TimeType | The type of time. |
NO | npt |
The type of time.
| TimeType | Type | Description |
|---|---|---|
| npt | string | Times are described using Normal Play Time (npt) as described in RFC 2326. |
The type of unit for the range.
| UnitType | Type | Description |
|---|---|---|
| pixel | string | Use pixels. |
| percent | string | Use percentage. |
Description TBD.
Any of the following:
A map of validation results for a manifest store. The map contains the validation results for the active manifest and any ingredient deltas. It is normal for there to be many
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| activeManifest | StatusCodes | Description TBD. |
NO | N/A |
| ingredientDeltas | Array of IngredientDeltaValidationResult | Description TBD. |
NO | N/A |
A ValidationStatus struct describes the validation status of a specific part of a manifest.
See https://c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_existing_manifests.
| Property | Type | Description | Required? | Default Value |
|---|---|---|---|---|
| code | String | Description TBD. |
YES | N/A |
| explanation | String | Description TBD. |
NO | N/A |
| success | Boolean | Description TBD. |
NO | N/A |
| url | String | Description TBD. |
NO | N/A |