> For the complete documentation index, see [llms.txt](https://dev.plyr.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.plyr.network/api-reference/assets/nfts-erc-721/mint-nft.md).

# Mint NFT

{% hint style="info" %}
Mints a new NFT to a specified recipient address with associated metadata.
{% endhint %}

**Endpoint:** `/game/nft/mint`\
**Method:** POST

{% tabs %}
{% tab title="Request Parameters" %}

```typescript
{
    nfts: string[];           // Array of NFT contract addresses
    addresses: string[];      // Array of recipient addresses
    metaJsons: object[];      // Array of metadata JSON objects for each NFT
    chainId?: string;         // Optional chain ID (defaults to configured MINT_NFT_CHAIN_ID)
}
```

{% endtab %}

{% tab title="Success Response" %}

```typescript
{
	taskId: string;
	data: {
		transactionHash: string; // The hash of the mint transaction
		tokenId: string; // The ID of the minted token
	}
	status: string;
}
```

{% endtab %}

{% tab title="Error Response" %}

```typescript
{
  error: string;
  details?: any;
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The \`nfts\`, \`addresses\`, and \`metaJsons\` arrays must have the same length. Each index represents a mint operation.
{% endhint %}

## Example Usage

```javascript
// Setup request parameters
const timestamp = Date.now().toString();
const body = {
	nfts: ['0x1234567890123456789012345678901234567890'], // NFT contract address
	addresses: ['0xabcdef1234567890abcdef1234567890abcdef'], // Recipient address
	metaJsons: [
		{
			name: 'Rare Sword',
			description: 'A powerful sword with magical properties',
			image: 'https://example.com/sword.png',
			attributes: [
				{ trait_type: 'Rarity', value: 'Rare' },
				{ trait_type: 'Damage', value: 50 },
				{ trait_type: 'Element', value: 'Fire' }
			]
		}
	],
	chainId: '43114' // Avalanche C-Chain
};

// Generate HMAC signature
const hmac = generateHmacSignature(timestamp, body, secretKey);

// Make the API request
const response = await axios.post(apiEndpoint + '/game/nft/mint', body, {
	headers: {
		apikey: apiKey,
		signature: hmac,
		timestamp: timestamp
	}
});

// Process the response
console.log('Mint Task ID:', response.data.taskId);
console.log('Transaction Hash:', response.data.data.transactionHash);
console.log('Token ID:', response.data.data.tokenId);
```
