# Work with NFTs

{% hint style="success" %}
**What is an NFT?**

As per Wikipedia, "A non-fungible token (NFT) is a unique digital identifier that is recorded on a blockchain and is used to certify ownership and authenticity. It cannot be copied, substituted, or subdivided. The ownership of an NFT is recorded in the blockchain and can be transferred by the owner, allowing NFTs to be sold and traded."

In effect, an NFT is made of:

* a media file (image, video) available online,
* its attached metadata file, which notably features the web address where the media file is stored,
* a blockchain's block, which stores the metadata file along with an NFT-centric smart contract that offers methods to interact with the NFT.

NFTs on Chiliz Chain follow the [EVM standards](https://ethereum.org/en/developers/docs/standards/) (for instance: [ERC721](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/), [ERC-1155](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155/), [etc.](https://ethereum.org/en/developers/docs/standards/#token-standards)), which ensure interoperability across tools and marketplaces.
{% endhint %}

{% hint style="success" %}
**What is NFT minting?**

NFT minting is the process of taking a digital file (such as an image, a video, or a piece of music) and turning it into an on-chain token: a verifiable digital asset that can be owned and transferred.
{% endhint %}

## Prerequisites

Three things are necessary for you to mint NFTs:

### 1. A Web3 wallet

To interact with Chiliz Chain (Chiliz Chain Mainnet or Spicy Testnet), you need a Web3 wallet address with some amount of CHZ on it. CHZ is the native Chiliz Chain token.

{% hint style="success" %}
A Web3 wallet serves as both storage for your CHZ tokens, and as your digital signature to approve on-chain actions.
{% endhint %}

You can use [MetaMask](https://metamask.io/) or any other Web3 wallet when working on Chiliz Chain:

{% content-ref url="/pages/7jmbvsuzJaARscErNwWb" %}
[How to use MetaMask](/learn/about-wallets/how-to-use-metamask.md)
{% endcontent-ref %}

Once installed, set your wallet up to work with Chiliz Chain:

{% content-ref url="/pages/3yrucNS4cSwYnlLOPjWS" %}
[Connect to Mainnet and Testnet](/quick-start/developer-toolbox/connect-to-mainnet-and-testnet.md)
{% endcontent-ref %}

Make sure to obtain CHZ tokens in order to pay for gas fees on Chiliz Chain Mainnet. You can buy CHZ on any exchange such as Binance, Coinbase, Bitpanda, etc.

To test your ability to mint NFTs on Chiliz Chain, you should use the Spicy Testnet with test CHZ tokens. You can obtain free tokens through testnet faucets:

{% content-ref url="/pages/Af9548Yd4RQMNgtsUkq9" %}
[Obtain Free Testnet Tokens](/develop/basics/obtain-free-testnet-tokens.md)
{% endcontent-ref %}

### 2. A deployed NFT smart contract

Before a file can be minted into an NFT, you must deploy and verify a corresponding NFT smart contract on Chiliz Chain. This is a crucial step to ensure transparency and enable interaction with your contract on-chain.

{% content-ref url="/pages/6jKxG34DH2ynN0hV3uMS" %}
[Choosing the right NFT contract](/develop/advanced/work-with-nfts/choosing-the-right-nft-contract.md)
{% endcontent-ref %}

{% content-ref url="/pages/zTkQQLpwajpWEoLHUp1b" %}
[Deploy a Smart Contract](/develop/basics/deploy-a-smart-contract.md)
{% endcontent-ref %}

{% content-ref url="/pages/Lxl4NxqCWg16RmKF2Iln" %}
[Verify a Smart Contract](/develop/basics/verifiy-a-smart-contract.md)
{% endcontent-ref %}

### 3. An online location for your NFT files & metadata

One essential part of your NFT is to have it available online, for all to see. One way to do that it to have your media file (image/video/etc.) and its `metadata.json` file accessible via IPFS.

{% content-ref url="/pages/8a6dGcAkUeJ78Zd5WHWo" %}
[Preparing the NFT files](/develop/advanced/work-with-nfts/preparing-the-nft-files.md)
{% endcontent-ref %}

{% content-ref url="/pages/zkeWU5tiTSyRLD8MSwGQ" %}
[Hosting your NFT on IPFS](/develop/advanced/work-with-nfts/hosting-your-nft-on-ipfs.md)
{% endcontent-ref %}

## Minting an NFT

There are several ways to mint NFTs on Chiliz Chain, depending on your needs.\
These pages aim to present the most recommended ways.

{% content-ref url="/pages/UakaCFAvmCVmHRZHtyHV" %}
[Minting with viem](/develop/advanced/work-with-nfts/minting-with-viem.md)
{% endcontent-ref %}

{% content-ref url="/pages/0P3O7tKO9hT6EZsn0Bhy" %}
[Minting with thirdweb](/develop/advanced/work-with-nfts/minting-with-thirdweb.md)
{% endcontent-ref %}

{% content-ref url="/pages/0Qu6XGa5tuqtfztY0iPR" %}
[Minting with Rarible](/develop/advanced/work-with-nfts/minting-with-rarible.md)
{% endcontent-ref %}

## Listing an NFT for sale

For developers and creators, "hosting" an NFT effectively means listing your assets on an online NFT marketplace so they are visible, tradable, and indexed for users.

{% content-ref url="/pages/mNzsuAl836Ag0TWvyd2p" %}
[Listing your NFT on OKX](/develop/advanced/work-with-nfts/listing-your-nft-on-okx.md)
{% endcontent-ref %}


---

# 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.chiliz.com/develop/advanced/work-with-nfts.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.
