Transfer an NFT

100 credits per API call on Flow
2 credits per API call on the other blockchains

Transfer an NFT from the smart contract (the contractAddress parameter in the request body) to the specified blockchain address (the to parameter in the request body).

In one API call, you can transfer only one NFT.

This API is supported for the following blockchains:

  • Algorand
  • BNB Smart Chain
  • Celo
  • Ethereum
  • Flow
  • Harmony
  • Klaytn
  • KuCoin Community Chain
  • Polygon
  • Solana
  • TRON
  • Tezos
  • Horizen Eon
  • Flare
  • Cronos
  • Base

For Ethereum, Celo, Flare and BNB Smart Chain, transferring NFTs invokes the safeTransfer() method.

Transferring NFTs on Algorand

  • On Algorand, the recipient has to agree in advance to receive your NFT because Algorand charges users for storing NFTs on their addresses, and an Algorand blockchain address by default does not receive NFTs unless explicitly agreed. Before transferring an NFT, make sure that the recipient has agreed to receive the NFT to their address.
  • If you want to transfer an NFT that was minted using NFT Express, use the transferNftAlgoExpress schema of the request body.
    NOTE: On the mainnet, Tatum covers your transaction fees for the NFT transfer and pays for them from its own blockchain address. Then, the fee amount paid by Tatum is converted to the number of credits, and these credits are deducted from the monthly credit allowance of your paid pricing plan. On the testnet, only one credit is deducted from the monthly credit allowance for transaction fee.

Transferring NFTs on Solana
If you want to transfer an NFT that was minted using NFT Express, use the transferNftSolana or transferNftSolanaKMS schema of the request body. In the request body:

  • Set the from parameter to the address that you used in the to parameter in the request body of the minting call.
  • Set the to parameter to the recipient's address.
  • Set the contractAddress parameter to the address from the nftAddress parameter returned in the response body of the minting call.
  • Set the fromPrivateKey/signatureId parameter to the private key/signature ID of the blockchain address that you specified in the from parameter.

Signing a transaction
When transferring an NFT, you are charged a fee for the transaction, and you must sign the transaction with the private key of the blockchain address from which the fee will be deducted.

Providing the private key in the API is not a secure way of signing transactions, because the private key can be stolen or exposed. Your private keys should never leave your security perimeter. You should use the private keys only for testing a solution you are building on the testnet of a blockchain.

For signing transactions on the mainnet, we strongly recommend that you use the Tatum Key Management System (KMS) and provide the signature ID instead of the private key in the API. Alternatively, you can use the Tatum JavaScript client.

NOTE: This does not apply to transferring NFTs that were minted on Algorand using NFT Express (see earlier in this section).

Language
Authorization
Header
Click Try It! to start a request and see the response here!