> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mint NFT with ID

> Mint an NFT via an idempotent endpoint by providing an nftName parameter, and send it to a web3 wallet or web2 email address

Replace:

* `<QUICKNODE_URL>`: Set to your own quicknode RPC URL
* `<collectionId>`: The name of the collection you want to mint against. If you haven't created a collection you can just use "default" to mint to the default collection for your project
* `<nftSlug>`: The idempotent slug for the NFT

> 📘
>
> Tip: when delivering NFTs to an email address, recipients should sign in with their email at [https://staging.crossmint.com/signin](https://staging.crossmint.com/signin) to access their NFTs. Ensure you send them an email with these instructions after minting.

```bash cURL theme={null}
curl -i '<QUICKNODE_URL>' -X POST -H 'content-type: application/json' --data-binary '{
    "jsonrpc": "2.0",
    "method": "cm_mintNFTIdempotent",
    "params": [
      "<collectionId>",
      "<nftSlug>",
      "email:toby@gmail.com:sol",
      {
        "name": "My Idempotent NFT",
        "image": "https://pbs.twimg.com/profile_images/1535656143988707330/Wg16GKQ2_400x400.png",
        "description": "An NFT commemorating a special day"
      }
    ]
  }'
```

## Parameters

| Index | Name         | Type   | Description                                                                                                                                                     |
| :---- | :----------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0     | collectionId | string | the id or name of the collection; every project has a "default-solana" collection. Otherwise, use the createCollection RPC endpoint to create a new collection. |
| 1     | nftSlug      | string | the idempotent slug for the NFT                                                                                                                                 |
| 2     | recipient    | string | Where to send the NFT. See how to [specify the recipient](/minting/nfts/integrate/manage-delivery)                                                              |
| 3     | metadata     | Object | Standards-compliant metadata. See [metadata](/minting/nfts/integrate/define-metadata)                                                                           |

## Returns

```json theme={null}
{
    "id": "<nftSlug>",
    "onChain": {
        "status": "pending",
        "chain": "solana"
    }
}
```
