ManifestStore
active_manifest: UUID
manifests
UUID:
UUID:
...
validation_status: Array of
Manifest
title
: A human-readable title, generally source filename.
label
: : Description TBD.
format
: The format of the source file as a MIME type.
credentials
: A List of verified credentials
instance_id
: Instance ID from xmpMM:InstanceID in XMP metadata.
redactions
: A list of redactions - URIs to a redacted assertions
claim_generator
: A User Agent formatted string identifying the software/hardware/system produced this claim Spaces are not allowed in names, versions can be specified with product/1.0 syntax
claim_generator_info
thumbnail
ingredients: Array of
assertions: Array of
signature_info

ManifestStore

A Container for a set of Manifests and a ValidationStatus list..

Properties

Property Type Description Required?
active_manifest String

A label for the active (most recent) manifest in the store.

NO
manifests Object

A HashMap of Manifests.


See Manifest
YES
validation_status Array of ValidationStatus

ValidationStatus generated when loading the ManifestStore from an asset.

NO

Definitions

Actor
AssetType
ClaimGeneratorInfo
Coordinate
DataSource
Frame
HashedUri
Ingredient
Manifest
ManifestAssertion
ManifestAssertionKind
ManifestData
Metadata
Range
RangeType
RegionOfInterest
Relationship
ResourceRef
ReviewRating
Role
Shape
ShapeType
SignatureInfo
SigningAlg
Text
TextSelector
TextSelectorRange
Time
TimeType
UnitType
UriOrResource
ValidationStatus

Scroll To Top

Actor

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 humanEntry.identified.

NO N/A

Scroll To Top

AssetType

Property Type Description Required? Default Value
type String

Description TBD.

YES N/A
version String

Description TBD.

NO N/A

Scroll To Top

ClaimGeneratorInfo

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
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.

Scroll To Top

Coordinate

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

Scroll To Top

DataSource

A description of the source for assertion data

Property Type Description Required? Default Value
actors Array of Actor

A list of [Actor]s associated with this source.

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

Scroll To Top

Frame

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

Scroll To Top

HashedUri

Hashed Uri structure as defined by C2PA spec It is annotated to produce the correctly tagged cbor serialization

Property Type Description Required? Default Value
alg String

Description TBD.

NO N/A
hash An array of integer

Description TBD.

YES N/A
url String

Description TBD.

YES N/A

Scroll To Top

Ingredient

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 ManifestStore , this will hold the label of the active Manifest.

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 xmpMM:DocumentID in XMP metadata.

NO N/A
format String

The format of the source file as a MIME type.

NO application/octet-stream
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 xmpMM:InstanceID in XMP metadata.

NO N/A
manifest_data ResourceRef

A ManifestStore from the source asset extracted as a binary C2PA blob.

NO N/A
metadata Metadata

Any additional Metadata as defined in the C2PA spec.

NO N/A
provenance String

URI from dcterms:provenance in XMP metadata.

NO N/A
relationship Relationship

Set to ParentOf if this is the parent ingredient.

There can only be one parent ingredient in the ingredients.

NO componentOf
thumbnail ResourceRef

A thumbnail image capturing the visual state at the time of import.

A tuple of thumbnail MIME format (for example image/jpeg) and binary bits of the image.

NO N/A
title String

A human-readable title, generally source filename.

YES N/A
validation_status Array of ValidationStatus

Validation results.

NO N/A

Scroll To Top

Manifest

A Manifest represents all the information in a c2pa manifest

Property Type Description Required? Default Value
assertions An array of ManifestAssertion

A list of assertions

NO Empty array
claim_generator String

A User Agent formatted string identifying the software/hardware/system produced this claim Spaces are not allowed in names, versions can be specified with product/1.0 syntax

NO c2pa/0.36.3
claim_generator_info Array of ClaimGeneratorInfo

A list of claim generator info data identifying the software/hardware/system produced this claim

NO N/A
credentials Array of true

A List of verified credentials

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 xmpMM:InstanceID in XMP metadata.

NO xmp:iid:eafef862-379d-44a1-99f7-2ead485e279d
label String

Description TBD.

NO N/A
metadata Array of Metadata

A list of user metadata for this claim

NO N/A
redactions Array of string

A list of redactions - URIs to a redacted assertions

NO N/A
signature_info SignatureInfo

Signature data (only used for reporting)

NO N/A
thumbnail ResourceRef

Description TBD.

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 Internet domain name for the vendor (i.e. adobe)

NO N/A

Scroll To Top

ManifestAssertion

A labeled container for an Assertion value in a Manifest

Property Type Description Required? Default Value
data ManifestData

The data of the assertion as Value

YES N/A
instance Integer (uint)
Minimum: 0.0

There can be more than one assertion for any label

NO N/A
kind ManifestAssertionKind

The ManifestAssertionKind for this assertion (as stored in c2pa content)

NO N/A
label String

An assertion label in reverse domain format

YES N/A

Scroll To Top

ManifestAssertionKind

A string that is one of the following:

Scroll To Top

ManifestData

Description TBD.

Any of the following:

Scroll To Top

Metadata

The Metadata 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 String

A date time in ISO 8601 format.

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

NOTE: This object can have any number of additional user-defined properties.

Scroll To Top

Range

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
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

Scroll To Top

RangeType

The type of range for the region of interest.

RangeType Type Description
spatial string

A spatial range, see Shape for more details.

temporal string

A temporal range, see Time for more details.

frame string

A spatial range, see Frame for more details.

textual string

A textual range, see Text for more details.

Scroll To Top

RegionOfInterest

A region of interest within an asset describing the change. This struct can be used from Action::changes or Metadata::region_of_interest.

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 Metadata

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 type.

NO N/A

Scroll To Top

Relationship

A string that is one of the following:

Scroll To Top

ResourceRef

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.

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

Scroll To Top

ReviewRating

A rating on an Assertion. See Review Ratings in C2PA spec

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

Scroll To Top

Role

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.

Scroll To Top

Shape

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

Scroll To Top

ShapeType

The type of shape for the range.

ShapeType Type Description
rectangle string

A rectangle.

circle string

A circle.

polygon string

A polygon.

Scroll To Top

SignatureInfo

Holds information about a signature

Property Type Description Required? Default Value
alg SigningAlg

human readable issuing authority for this signature

NO N/A
cert_serial_number String

The serial number of the certificate

NO N/A
issuer String

human readable issuing authority for this signature

NO N/A
revocation_status Boolean

revocation status of the certificate

NO N/A
time String

the time the signature was created

NO N/A

Scroll To Top

SigningAlg

Describes the digital signature algorithms allowed by the C2PA spec:

All digital signatures that are stored in a C2PA Manifest shall be generated using one of the digital signature algorithms and key types listed as described in this section.

SigningAlg Type Description
Es256 string

ECDSA with SHA-256

Es384 string

ECDSA with SHA-384

Es512 string

ECDSA with SHA-512

Ps256 string

RSASSA-PSS using SHA-256 and MGF1 with SHA-256

Ps384 string

RSASSA-PSS using SHA-384 and MGF1 with SHA-384

Ps512 string

RSASSA-PSS using SHA-512 and MGF1 with SHA-512

Ed25519 string

Edwards-Curve DSA (Ed25519 instance only)

Scroll To Top

Text

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

Scroll To Top

TextSelector

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

Scroll To Top

TextSelectorRange

One or two TextSelector objects identifying 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

Scroll To Top

Time

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

Scroll To Top

TimeType

The type of time.

TimeType Type Description
npt string

Times are described using Normal Play Time (npt) as described in RFC 2326.

Scroll To Top

UnitType

The type of unit for the range.

UnitType Type Description
pixel string

Use pixels.

percent string

Use percentage.

Scroll To Top

UriOrResource

Description TBD.

Any of the following:

Scroll To Top

ValidationStatus

A ValidationStatus struct describes the validation status of a specific part of a manifest. See https://c2pa.org/specifications/specifications/1.4/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
url String

Description TBD.

NO N/A