# Certificates of Authenticity

Iterati's Certificates of Authenticity are **digital** descriptors which accompany every physical label and contain metadata about the label and the underlying physical artwork it is attached to.

Each physical label must have a corresponding Certificate of Authenticity in order to be considered valid. The process of generating a certificate of authenticity in called [**certification**](/getting-started/certification-process.md).

## Data Composition

The following fields are a subset of the data stored by each Iterati Certificate of Authenticity

* Label ID - An 8 digit integer value unique to each Iterati label
* Label Image - Hex-encoded binary field which stores the optical fingerprint configuration for this label (unique colors and positions of the microbeads)
* Token ID - Token ID of the NFT corresponding to the physical artwork being scanned
* Contract Address - Blockchain address of the NFT collection containing this Token ID
* Chain ID - [ID number of the EVM chain](https://chainlist.org/) the NFT collection is deployed to
* Artist Address - Address of the artist or collection owner
* Signature - A cryptographically signed attestation from the artist which verifies that this certificate of authenticity was enrolled by the original NFT artist and not anyone else

## Data Storage

Iterati's modular authenticity stack aims to eliminate single points of failure and ensure that the artworks enrolled though the platform survive and can be verified long into the future.

As such, every Iterati Certificate is stored on IPFS through the [Ceramic Network](https://ceramic.network/) - where it is publicly available to be verified and indexed without a middleman or centralized server.

The Ceramic Network is a composable Web3 data network that encourages reusable data models and enables anyone to upload, manage and consume structured data from IPFS.

{% hint style="info" %}
At the moment, Iterati is handling the overhead of pinning and indexing each COA file, however we hope that developer groups will take on the task of pinning the files which are relevant to them in the future, as an additional layer of redundancy and decentralization.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.iterati.art/how-it-works/certificates-of-authenticity.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
