# Metadata Structure

TL Metadata is supported by all major marketplaces, such as SuperRare, OpenSea, LooksRare, and Nifty Gateway. The metadata follows widely accepted standards, with a few additional fields.

## Metadata Structure

```json
{
    "name": "string",
    "description": "string",
    "external_url": "string",
    "attributes": [
        {
            "trait_type": "string",
            "value": "string"
        },
        ...
    ],
    "tags": [
        "string",
        "string",
        ...
    ],
    "image": "string",
    "image_sha256": "string",
    "animation_url": "string",
    "animation_sha256": "string",
    "media": {
        "dimensions": "<number>x<number>",
        "size": "<number>",
        "mimeType": "string"
    }
}
```

### Details

<details>

<summary>name (required)</summary>

The title of the NFT

</details>

<details>

<summary>description (required)</summary>

The description that goes along with the NFT. You can use Markdown on OpenSea and SuperRare, although markdown links are not supported on SuperRare (regular links are).

A note on line breaks in Markdown: You need two spaces in front of the escape characters. For example: `\n`

</details>

<details>

<summary>external_url (optional)</summary>

A url string that would show up under the item on OpenSea and can be used to direct people to your website or other content you want them to see.

</details>

<details>

<summary>attributes (optional)</summary>

A list of key-value pair objects. The `trait_type` is always the key and `value` is the value. You can read more about these [here](https://docs.opensea.io/docs/metadata-standards#attributes). Note, boosts or anything like that are not supported outside of OpenSea.

</details>

<details>

<summary>tags (optional)</summary>

These are essentially hashtags on SuperRare. OpenSea does not yet support although they may be looking into this based on some beta features available in collection settings. We shall see.

</details>

<details>

<summary>image (required)</summary>

The uri of the image. Supported file types are `jpeg`, `png`, and `gif`.

</details>

<details>

<summary>image_sha256 (optional)</summary>

The sha256 hash of the image. Useful for assuring that the downloaded file is correct.

</details>

<details>

<summary>animation_url (only required for videos, 3d, and html)</summary>

The uri of the animation. Supported file types are `mp4`, `mp3`, `glb`, `gltf`, `html`

</details>

<details>

<summary>animation_sha256 (optional)</summary>

The sha256 hash of the animation. Useful for assuring that the downloaded file is correct.

</details>

<details>

<summary>media (optional)</summary>

An object containing some details about the main asset for faster indexing.

* `uri` - the link to the main asset (either `image` or `animation_url`)
* `size` - the size of the main asset in bytes shown as a string
* `dimensions` - the dimensions of the main asset if available, otherwise the dimensions of the thumbnail image ex: `100x100`
* `mimeType` - the mime type of the main asset

</details>


---

# 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.transientlabs.xyz/integrations/metadata-structure.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.
