> 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/transfer-nft.md).

# Transfer NFT

{% hint style="info" %}
Transfers an NFT from one address to another.
{% endhint %}

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

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

```typescript
{
    nfts: string[];             // Array of NFT contract addresses
    fromAddresses: string[];    // Array of source addresses
    toAddresses: string[];      // Array of destination addresses
    tokenIds: string[];         // Array of token IDs to transfer
    chainId?: string;           // Optional chain ID
}
```

{% endtab %}

{% tab title="Success Response" %}

```typescript
{
	taskId: string;
	data: {
		transactionHash: string; // The hash of the transfer transaction
	}
	status: string;
}
```

{% endtab %}

{% tab title="Error Response" %}

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

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The \`nfts\`, \`fromAddresses\`, \`toAddresses\`, and \`tokenIds\` arrays must have the same length. Each index represents a transfer operation.
{% endhint %}

## Example Usage

```javascript
// Setup request parameters
const timestamp = Date.now().toString();
const body = {
	nfts: ['0x1234567890123456789012345678901234567890'], // NFT contract address
	fromAddresses: ['0xabcdef1234567890abcdef1234567890abcdef'], // Source address
	toAddresses: ['0x0987654321098765432109876543210987654321'], // Destination address
	tokenIds: ['123'], // Token ID to transfer
	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/transfer', body, {
	headers: {
		apikey: apiKey,
		signature: hmac,
		timestamp: timestamp
	}
});

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