> For the complete documentation index, see [llms.txt](https://docs.chiliz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chiliz.com/develop/advanced/work-with-nfts/preparing-the-nft-files.md).

# Preparing the NFT files

Prepare visual assets and ERC-721/ERC-1155 metadata JSON files for NFT minting on Chiliz Chain, covering image formats and metadata schema standards.

Preparing the files for your NFT project involves two distinct parts:

* the visual asset (what the user sees)
* the metadata (what the blockchain reads)

## The visual assets

This is the art that you want to turn into NFTs.

You (or your design team) should produce the files with these specifications:

### Format

* Static images: Use PNG (preferred for quality) or JPG.
* Video: Use MP4.\
  \_If you have a video card, also create a static "thumbnail" image for smooth loading.\_
* 3D Objects: Use GLB or GLTF.

### Dimensions (Aspect Ratio)

Usually, NFTs use either:

* A square format: 1080 x 1080 pixels.
* A Vertical Phone/Story format: 1080 x 1920 pixels.

### File Size

Aim to keep the files under 25MB (ideally <10MB) for fast loading on mobile wallets.

{% hint style="info" %}

#### Pro Tip

Create a high-res "Master" file (100MB+) but do not use it as the main NFT image. Instead, use the "[Unlockable Content](https://help.rarible.com/hc/en-us/articles/10460251328653-What-is-unlockable-content)" feature to give the Master file only to the owner.
{% endhint %}

## The metadata

The blockchain does not store your image directly (it is too expensive). It stores a link to a text file in the JSON format, which means the JSON files can only be created once the visual files are effectively hosted.

{% hint style="info" %}
Most modern tooling will do this for you, saving you from having to do it all by hand.
{% endhint %}

There must be one JSON file for each NFT type in your collection (e.g., one JSON for "NFT 1", one for "NFT 2", etc.).

Here is an example of an NFT's JSON file:

```json
{
  "name": "Mark Whaleon - 2024/25 Season",
  "description": "The official Striker card for Team X, 2024/25 Season. Gold Tier.",
  "image": "ipfs://YOUR_IMAGE_IPFS_ID_GOES_HERE",
  "external_url": "https://example.com/players/whaleon",
  "attributes": [
    {
      "trait_type": "Position",
      "value": "Striker"
    },
    {
      "trait_type": "Jersey Number",
      "value": "10"
    },
    {
      "trait_type": "Season",
      "value": "2024/2025"
    },
    {
      "trait_type": "Rarity",
      "value": "Gold"
    },
    {
      "display_type": "number",
      "trait_type": "Goals Scored",
      "value": 15
    }
  ]
}
```

{% hint style="info" %}
The attributes are crucial for sports-related cards. It allows fans to filter by "Position," "Season," or "Rarity" on marketplaces.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chiliz.com/develop/advanced/work-with-nfts/preparing-the-nft-files.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
