# ERC721 NFT Tokens

## Mint a new ERC721 NFT Token

<mark style="color:green;">`POST`</mark> `https://api.nfty.dev/v1/nfts`

This endpoint mints a new NFT from the given hosted ERC721 Collection to a destination wallet address. The address can be an NFT Wallet that you created using the APIs or any external address/wallet that supports ERC721 NFTs.\
\
NFTYverse will handle uploading and hosting all the metadata and optionally the images and media as well. This API should only be used on hosted ERC721 Collections. If you prefer to host the metadata yourself, you can create a "Self-Hosted" ERC721 Collection and use the "Self-Hosted" version of the API below.

#### Headers

| Name          | Type   | Description              |
| ------------- | ------ | ------------------------ |
| Authorization | string | Your authorization token |

#### Request Body

| Name                | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| collection\_address | string  | The address of the collection you created using the Create NFT Collection API.                                                                                                                                                                                                                                                                                                                                                                                               |
| to\_address         | string  | The destination address for the newly minted NFT. It can be an NFT Wallet or any external address that supports ERC721 NFTs.                                                                                                                                                                                                                                                                                                                                                 |
| image               | string  | NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards>                                                                                                                                                                                                                                                                                                                                                                                              |
| external\_url       | string  | NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards>                                                                                                                                                                                                                                                                                                                                                                                              |
| description         | string  | <p>NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards></p><p></p><p>Note: you can add the string <code>{token\_id}</code> <em>into the description and it will be replaced by the token\_id of this NFT token. This is useful if you want the description of the NFT to contain the token\_id, such as "This is NFT #123" etc.</em></p>                                                                                                          |
| name                | string  | <p>NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards></p><p></p><p>Note: you can add the string <code>{token\_id}</code> <em>into the name and it will be replaced by the token\_id of this NFT token. This is useful if you want the name of the NFT to contain the token\_id, such as "NFT #123" etc.</em></p>                                                                                                                                |
| attributes          | array   | NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards>                                                                                                                                                                                                                                                                                                                                                                                              |
| background\_color   | string  | NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards>                                                                                                                                                                                                                                                                                                                                                                                              |
| animation\_url      | string  | NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards>                                                                                                                                                                                                                                                                                                                                                                                              |
| youtube\_url        | string  | NFT metadata as defined here: <https://docs.opensea.io/docs/metadata-standards>                                                                                                                                                                                                                                                                                                                                                                                              |
| copy\_media         | boolean | Set this to true if you would like NFTYverse to copy and upload your `image` and `animation_url` media to IPFS and host it for you. Otherwise, set it to false and we will use the `image` and `animation_url` values directly. (You are choosing to continue hosting the media links yourself if this is set to false or omitted.)                                                                                                                                          |
| unlockable\_content | string  | This optional string represents "unlockable content" that only the NFT token holder  should be able to view. You can use it to create hidden text or links that are attached to this NFT, such as passwords or special access codes to your content - turning your NFT into a digital key and proof of ownership. The string is stored in the NFTYverse database off-chain. It  is then returned by the API when listing NFT Wallet contents for the user who owns this NFT. |

{% tabs %}
{% tab title="200 Mint action successfully initiated with the returned request id.

Since this is a blockchain transaction, the mint action may not complete right away. You will receive a request id in the response, which you can save. Once the transaction is fully completed on the blockchain, you will receive a separate Webhook Event with the same request id. At that point, you can consider the transaction completed and update your product UI as needed. Before receiving the Webhook Event, you should consider the transaction as pending. You can also use the Requests API to check on the status." %}

```
{"request_id":"53e5079d941f14db8a24a8e8647e93071fdff93de9e424796010549fd3e573aa"}
```

{% endtab %}

{% tab title="422 Could not mint NFT. Please make sure that the fields are correct and that you own the Collection specified by the collection\_address." %}

```
{"error_code":"", "errors":null}
```

{% endtab %}
{% endtabs %}

#### Example Request:

```
curl --request POST \
     --url https://api.nfty.dev/v1/nfts \
     --header 'Content-Type: application/json' \
     --header 'authorization: Bearer c4Vftx4kGiFYqpjM/3p4o5pgkmuthLWUNpXNlrig8EjlnSTeVgde4kEBdI1Uc1RFqWJBBRxkOmZ/QcHQXdQNjQ==' \
     --data '{
  	   "collection_address": "0x90de09166cd8ae30dc2bfe25be0f5bd486851cd7",
  	   "to_address": "0x6d5f584f957858be82562a3b8b7b6268c4055f15",
       "name": "My NFT",
       "image": "https://domain.com/nfts/mynft.png",
       "description": "A collectible NFT.",
       "attributes": [
        {
        "trait_type": "Eyes", 
        "value": "Big"
        }, 
        {
        "trait_type": "Level", 
        "value": 5
        }, 
        {
        "display_type": "number", 
        "trait_type": "Generation", 
        "value": 2
        }
       ],
       "copy_media": true  
       }'

```

#### Example Response:

```
{"request_id":"12c81219efed57b38068fc3fe3fcdbb9e4f41041f5d1fe8ea8b830dd3bd19586"}
```

## Mint a new ERC721 NFT Token (Self-Hosted)

<mark style="color:green;">`POST`</mark> `https://api.nfty.dev/v1/nfts`

This endpoint mints a new NFT from the given "Self-Hosted" ERC721 Collection to a destination wallet address. The address can be an NFT Wallet that you created using the APIs or any external address/wallet that supports ERC721 NFTs.\
\
"Self-Hosted" means that you will be hosting the metadata and optionally the media yourself. This API should only be used on "Self-Hosted" ERC721 Collections. If you prefer to have NFTYverse handle and host the metadata, please create a hosted ERC721 Collection and check out the regular hosted API above.

#### Headers

| Name          | Type   | Description              |
| ------------- | ------ | ------------------------ |
| Authorization | string | Your authorization token |

#### Request Body

| Name                | Type   | Description                                                                                                                  |
| ------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- |
| collection\_address | string | The address of the collection you created using the Create NFT Collection API.                                               |
| to\_address         | string | The destination address for the newly minted NFT. It can be an NFT Wallet or any external address that supports ERC721 NFTs. |

{% tabs %}
{% tab title="200 Mint action successfully initiated with the returned request id.

Since this is a blockchain transaction, the mint action may not complete right away. You will receive a request id in the response, which you can save. Once the transaction is fully completed on the blockchain, you will receive a separate Webhook Event with the same request id. At that point, you can consider the transaction completed and update your product UI as needed. Before receiving the Webhook Event, you should consider the transaction as pending. You can also use the Requests API to check on the status." %}

```
{"request_id":"53e5079d941f14db8a24a8e8647e93071fdff93de9e424796010549fd3e573aa"}
```

{% endtab %}

{% tab title="422 Could not mint NFT. Please make sure that the fields are correct and that you own the Collection specified by the collection\_address." %}

```
{"error_code":"", "errors":null}
```

{% endtab %}
{% endtabs %}

#### Example Request:

```
curl --request POST \
     --url https://api.nfty.dev/v1/nfts \
     --header 'Content-Type: application/json' \
     --header 'authorization: Bearer c4Vftx4kGiFYqpjM/3p4o5pgkmuthLWUNpXNlrig8EjlnSTeVgde4kEBdI1Uc1RFqWJBBRxkOmZ/QcHQXdQNjQ==' \
     --data '{
  	   "collection_address": "0x90de09166cd8ae30dc2bfe25be0f5bd486851cd7",
  	   "to_address": "0x6d5f584f957858be82562a3b8b7b6268c4055f15"
       }'

```

#### Example Response:

```
{"request_id":"12c81219efed57b38068fc3fe3fcdbb9e4f41041f5d1fe8ea8b830dd3bd19586"}
```
