# The data plane

The data plane is the full set of named, typed data a token anchors. The ERC-721 metadata JSON exposes
part of it.

In ERC-721, `image` is the only field with a defined content type, and `animation_url` is not defined
in any ERC. A token can anchor data of any type, and the data plane names that full set.

## The artifact

Each piece of a token's data is an artifact: one named, typed record.

```
key -> { mimeType, uri }
```

- **`key`**: a field name (`image`, `animation_url`) for creator-set content, or `{effectKey}/{outputKey}` (`render/image`, `world.rebuild/model`) for derived content.
- **`mimeType`**: declared at the source, not inferred from the bytes.
- **`uri`**: a locator the protocol already uses. `data:` for on-chain bytes, `ipfs://` or `ar://` for content-addressed data, `https://` for a resolver route or plain URL.

A directory is an artifact whose `uri` is a content-addressed root, such as an IPFS directory CID or an
Arweave path manifest.

## The manifest

The plane's full listing is one key in the served token JSON, whether an off-chain resolver composes it
or an on-chain renderer emits it.

```jsonc
{
  "name": "...", "image": "...", "animation_url": "...",    // reserved keys
  "artifacts": [
    { "key": "image",               "mimeType": "image/png",         "uri": "ipfs://..." },
    { "key": "render/image",        "mimeType": "image/png",         "uri": "ipfs://..." },
    { "key": "world.rebuild/model", "mimeType": "model/gltf-binary", "uri": "ar://..." }
  ]
}
```

A consumer that does not recognize the `artifacts` key ignores it. A consumer that does recognize it
reads the plane from the same document, so no second endpoint is required. The entry shape, a `uri` and
a `mimeType` per record, matches the shape used by Zora, Tezos TZIP-21, Metaplex, and Ordinals.

## Examples

- **Music**: cover art in the reserved keys; the lossless master, stems, and lyric sheet as artifacts.
- **Generative art**: still and live view in the reserved keys; a 3D-printable model, a print-resolution export, and a traits JSON as artifacts.
- **Photography**: a JPEG for marketplaces; the RAW original as an artifact.
- **Datasets**: a snapshot that an effect regenerates when its on-chain inputs change.

## Verifiability

Each artifact is labeled with its provenance: where the value came from, and whether the chain commits
to it. The label is required. The level of verification is set by the creator:

- **Labeled**: an off-chain process produces the output, served as-is.
- **Anchored**: a `keccak256` is posted on-chain, or the `uri` is content-addressed, so the bytes can be checked.
- **Reproducible**: a deterministic effect with open code and on-chain inputs, so the output can be regenerated from chain state.

## Related

[Effects](effects.md), [Metadata](metadata.md), [Code projects](code-projects.md), [Event spine](event-spine.md)
