> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Define Metadata

> Understand NFT metadata standards & storage options

Metadata in the context of NFTs includes essential information such as the name, description, and media (e.g., images, videos) associated with the asset.

### Metadata Standards

Collection and NFT metadata (e.g. title, description, image) must be specified in JSON format and follow industry conventions to ensure it renders appropriately across wallets and marketplaces.

Crossmint supports rich metadata like audio, video, and HTML. To include rich metadata, simply populate `animation_url` as specified in the links below.

<Card title="File size limits" icon="file" iconType="duotone" color="EEBB24">
  Crossmint's standard plan has a **10mb** file size limit. For larger uploads, you must upgrade to a [premium
  plan](https://www.crossmint.com/contact/sales) or handle the upload yourself.
</Card>

Metadata standards differ slightly across blockchains:

<Tabs>
  <Tab title="EVM chains">
    EVM chains follow the OpenSea standard. Refer to their <a href="https://docs.opensea.io/docs/metadata-standards#metadata-structure" target="_blank">official documentation</a> to see what attributes can be included and how. Note that `name` and `image` are mandatory fields.

    ```json EVM Metadata Example theme={null}
    {
      "name": "Crossmint Test NFT",
      "description": "Created with the Crossmint minting API",
      "image": "https://bafkreiexjl6kw4khdxkrt6dojgacscnzvrys47t472l2t7d6r2ss65kifq.ipfs.nftstorage.link/",
      "external_url": "https://docs.crossmint.com",
      "attributes":  [
        {
          "trait_type": "background",
          "value": "black"
        },
        {
          "trait_type": "flavor",
          "value": "minty"
        }
      ]
    }
    ```
  </Tab>

  <Tab title="Solana">
    Solana follows the Metaplex Metadata Standard. For more information, refer to the <a href="https://docs.metaplex.com/programs/token-metadata/changelog/v1.0#json-structure" target="_blank">official Metaplex documentation</a> - see the JSON structure section.

    ```json Solana Metadata Example theme={null}
    {
      "name": "Crossmint Test NFT",
      "symbol": "XMINT",
      "description": "Created with the Crossmint minting API",
      "seller_fee_basis_points": 5000,
      "image": "https://bafkreiexjl6kw4khdxkrt6dojgacscnzvrys47t472l2t7d6r2ss65kifq.ipfs.nftstorage.link/",
      "attributes": [
        {
          "trait_type": "background",
          "value": "black"
        },
        {
          "trait_type": "flavor",
          "value": "minty"
        }
      ],
      "properties": {
        "files": [
          {
            "uri": "https://bafkreiexjl6kw4khdxkrt6dojgacscnzvrys47t472l2t7d6r2ss65kifq.ipfs.nftstorage.link/",
            "type": "image/png"
          }
        ],
        "category": "image",
        "creators": [
          {
            "address": "xm2Mc3HEd2bGJXeqJEBrek4bj79gxzYkBaEobnpFraH",
            "share": 100
          }
        ]
      }
    }
    ```
  </Tab>

  <Tab title="Aptos">
    Aptos follows the Aptos Legacy Token Standard. For more information, refer to the <a href="https://aptos.dev/standards/aptos-token/" target="_blank">official Aptos Documentation</a> - see the JSON structure section.

    ```json Aptos Metadata Example theme={null}
    {
      "name": "Crossmint Test NFT",
      "description": "Aptos Attributes Test",
      "image": "https://www.arweave.net/abcd5678?ext=png",
      "animation_url": "https://www.arweave.net/efgh1234?ext=mp4",
      "external_url": "https://petra.app/",
      "attributes": [
        {
          "trait_type": "web",
          "value": "yes"
        },
        {
          "trait_type": "mobile",
          "value": "yes"
        },
        {
          "trait_type": "extension",
          "value": "yes"
        }
      ],
      "properties": {
        "files": [
          {
            "uri": "https://www.arweave.net/abcd5678?ext=png",
            "type": "image/png"
          },
          {
            "uri": "https://watch.videodelivery.net/9876jkl",
            "type": "unknown",
            "cdn": true
          },
          {
            "uri": "https://www.arweave.net/efgh1234?ext=mp4",
            "type": "video/mp4"
          }
        ],
        "category": "video"
      }
    }
    ```
  </Tab>
</Tabs>

## Crossmint Metadata Storage

Metadata must be stored somewhere to be accessible and verifiable on the blockchain. Crossmint automatically uploads and validates metadata for you on decentralized storage solutions, ensuring a seamless minting experience.

### Supported Storage Providers

Crossmint supports two primary storage providers:

* **IPFS (InterPlanetary File System)** (Default): A widely adopted decentralized storage standard ensuring compatibility across blockchain ecosystems by enabling peer-to-peer file storage and retrieval.
* **Walrus Network**: A new decentralized storage solution designed for efficient and scalable metadata hosting. Walrus is currently not supported for EVM NFT templates.

<Note>If you are interested in using **Arweave** for metadata storage, please contact us for further information.</Note>

### Configuring Storage

By default, Crossmint uses IPFS to store metadata and media. However, if you prefer to use Walrus, you can configure this in the [Crossmint Console](https://staging.crossmint.com/console) under **Settings > General**.

<img src="https://mintcdn.com/crossmint/ZW9iqt6NGtSVc_iV/images/minting/storage-providers.png?fit=max&auto=format&n=ZW9iqt6NGtSVc_iV&q=85&s=e7c7d3fc028b4f5628f3413c8822a42d" alt="Storage Providers" width="2496" height="414" data-path="images/minting/storage-providers.png" />

<Note>
  {" "}

  If you prefer to upload and manage media files independently, you can pass a direct URL to the [Mint API](/api-reference/minting/nfts/mint-nft)
  and set the `reuploadLinkedFiles` flag to `false`. This prevents Crossmint from automatically reuploading media files
  to decentralized storage.
</Note>

***

## FAQs

<AccordionGroup>
  <Accordion title="What type of files can I store?">
    You may store any text and image file. Additionally, you may include multi-media files such as GLTF, GLB, WEBM, MP4, M4V, OGV, and OGG, along with the audio-only extensions MP3, WAV, and OGA. Please stored them as `animation_url`.

    In addition, `animation_url` also supports HTML pages, allowing you to build rich experiences and interactive NFTs using JavaScript canvas, WebGL, and more. Scripts and relative paths within the HTML page are also supported. However, access to browser extensions is not supported.
  </Accordion>

  <Accordion title="What's the maximum file size?">
    The maximum file size is 10mb. For larger files, you must upgrade to an enterprise plan or upload the metadata yourself and pass the URI to the API.
  </Accordion>

  <Accordion title="Can I store the metadata on a centralized server?">
    Yes. You must handle the upload yourself and pass the URL to the API.
  </Accordion>
</AccordionGroup>
