Contract Comparison

Use the table below to decide which type of contract is right for you. For a more detailed explanation, see the Collection contracts section below the table.

Collection contractsContracts for NFT products
Used forNFT collection dropsBuilding NFT-enabled apps
Minting done byFirst buyerDeveloper
Minting transaction fee paid byFirst buyerDeveloper
Cost to launch a 5,000 NFT collectionFREE$0.075 per minted NFT (see Pricing)
Number of NFTsMax # of NFTs fixed when contract createdNFTs can be added any time
Tradable on marketplaces (e.g. OpenSea)✅ After first user has paid & minted the NFT✅ Immediately after minting
Whitelist/Pre-salePossible with custom code
Deploying a contractREST API call: Deploy an NFT collection contractREST API call: Deploy a contract for NFT products
Minting an NFTWeb3 call to on-chain contractREST API call: Customizable minting
Minting method usually called fromCollection websiteAny app or script

Collection contracts

In contrast to contracts for NFT products, collection contracts have the following important features and limitations.

Number of NFTs

  • The total number of NFTs is fixed upon contract deployment (see max_supply argument).


  • Once a collection contract is deployed, before NFTs can be traded on marketplaces like OpenSea, they must be minted.
  • NFTs in the collection are minted at time of first purchase, for a cost of mint_price.
  • The minting call must be made directly against the contract; this cannot be done through NFTPort. The developer typically creates a minting website for buyers where they can mint by signing transactions and paying with their Metamask wallet.

Minting price and transaction fee

  • The minting transaction fee (gas fee) is paid by the first buyer of the NFT, not the developer.
  • The balance of prices paid for NFTs is available for the owner of treasury_address to withdraw.
  • Both the minting price and transaction fee are paid in the chain's native token (MATIC for contracts deployed to Polygon).