Deploy an NFT smart contract

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

Deploy an NFT smart contract on the blockchain. In a deployed NFT smart contract, you can mint NFTs (one NFT at a time or multiple NFTs at once), burn, and transfer NFTs.

Smart contracts are standardized and audited. You can review the code of a deployed NFT smart contract here (if the contract is deployed on Flow) or here (if the contract is deployed on any other supported blockchain).

This API is supported for the following blockchains:

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

General NFT smart contracts
By default, an NFT smart contract is deployed as a general NFT smart contract compatible with OpenSea royalties. This is a standard NFT contract with AccessControl and Ownable, enhanced with NFT batch minting. NFTs minted on this smart contract are compatible with OpenSea and its royalty structure.

You can enable public minting for smart contracts. By default, public minting is disabled, which means that only the blockchain address whose private key was used to create the smart contract or the blockchain addresses added to the smart contract as NFT minters will be able to mint NFTs for the contract. To enable public minting and allow anyone to mint NFTs on top of the smart contract, deploy the contract with the publicMint parameter set to true in the request body.

NFT smart contracts and NFT Express
If you want to use NFT Express to mint NFTs on the deployed smart contract, deploy the smart contract as a general NFT smart contract.
After you have deployed the NFT smart contract, add the Tatum minter address as an NFT minter to your smart contract.

For the complete information about using NFT Express on your smart contract, see "Use your own smart contract to mint NFTs" in Mint an NFT.

Signing a transaction
When deploying an NFT smart contract, 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.

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