# Deploy a NFT

This guide walks you through creating and deploying an NFT smart contract using [**OpenZeppelin Smart Contract Wizard**](https://wizard.openzeppelin.com/) and [**Remix**](https://remix.ethereum.org/), the web-based IDE for Contract Deployment

Before you begin, ensure you have **BTCs in your wallet** and that the **IBVM Testnet** is added. If not, follow the [**Faucet guide**](/ibvm-doc/faucet.md) to acquire BTC and set up the IBVM network.

### 🛠 Step 1: Open OpenZeppelin Smart Contract Wizard

Navigate to [OpenZeppelin Wizard](https://wizard.openzeppelin.com/#erc721) in your browser. You’ll be greeted with an interface to customize your smart contract.

#### Select the **ERC721** template

Choose **ERC721** (NFT standard) from the list of contract types. This will generate a basic NFT smart contract structure.

<figure><img src="/files/PPAhR0jsBAmIlycfKIX5" alt=""><figcaption><p>Choose ERC721 Standard</p></figcaption></figure>

### ✏️ Step 2: Fill in NFT Details

Customize your contract with the following:

* **Name** – e.g., “MyArtCollection”
* **Symbol** – e.g., “ART”
* Optional features:
  * ✅ **Mintable** – Allow new NFTs to be created.
  * ✅ **Burnable** – Allow NFTs to be destroyed.
  * ✅ **Enumerable** – Keep track of all tokens.
  * ✅ **URI Storage** – Store metadata (images, traits) with token URIs.

Once configured, you’ll see a preview of the contract code generated live.

<figure><img src="/files/jkkhOussIHhPKdiFtvNE" alt=""><figcaption><p>Enter NFT Details</p></figcaption></figure>

### 🚀 Step 3: Move to Remix

Click the **“Open in Remix”** button to transfer your generated NFT contract into the Remix IDE.

Once in Remix:

1. Compile the contract (set EVM version to **Shanghai**).
2. Go to **Deploy & Run Transactions**.
3. Set **Environment** to “Injected Provider - MetaMask”.
4. Ensure your MetaMask is connected to **IBVM Testnet**.
5. Click **Deploy** and confirm the transaction in Wallet.

<figure><img src="/files/xPEx6JITfZ5j0BDvNNss" alt=""><figcaption><p>Open Remix 7 Deploy</p></figcaption></figure>

### 🎉 Congratulations!

You’ve successfully deployed an **NFT contract** on IBVM using OpenZeppelin and Remix. You can now mint NFTs and link metadata like artwork, collectibles, or access passes to each token.

Use a token ID and metadata URI to mint new NFTs through your contract.

Need help with NFT metadata or marketplaces? Join the **IBVM Discord** or explore our upcoming NFT toolkits.


---

# 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://ibvm.gitbook.io/ibvm-doc/development-guide/deploy-a-nft.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.
