ERC-721 – Why Crypto Art NFT Platforms Set Low Max Supply for Minting Tokens

erc-721mintnft

enter image description here

The screenshot shows details about the crypto art platform SuperRare's non-native token "SUPR" for minting NFTs to. I guess this is the token that creators mint their art to.

But it says only 16,248 of these NFTs can be minted based on the max supply field, meaning 16,248 artworks. Is this correct? Why would SuperRare limit themselves that much, when they could've instead allowed millions of NFTs to be minted in the future?

Are the 2,488 "Holders" inclusive of both creators and collectors, or just creators?

Also what does the pop-up info mean, "submit token burn details"? who is a project owner?

Best Answer

The answer is in the name of the token : SuperRare.

There is a negative correlation between the value of an asset and its total supply, even when the tokens are non fongible.

That's why we see some NFTs being sold for 100 ETH.

Holders can be both creators and collectors :

  • creators when the NFT is minted, it can then be put in auction for exemple
  • collectors when the NFT is traded.

For the submit token burn details info I believe this is an option for the contract owner who can communicate to Etherscan the token’s burn history.

UPDATE

The SuperRare smart contract implements ERC721Enumerable. In this contract we have the array _allTokens counting the number of NFTs :

  // Array with all token ids, used for enumeration
  uint256[] private _allTokens;

Then we have the totalSupply function which returns the length of the previous array :

  /**
  * @dev Gets the total amount of tokens stored by the contract
  * @return uint256 representing the total amount of tokens
  */
 function totalSupply() public view returns (uint256) {
   return _allTokens.length;
 }

Note that (unlike ERC20), the totalSupply method is not part of the base ERC721 standard, but is implemented by ERC721Enumerable which is an enumeration extension smart contract for ERC721.

Finally the mint function :

  /**
   * @dev Internal function to mint a new token
   * Reverts if the given token ID already exists
   * @param to address the beneficiary that will own the minted token
   * @param tokenId uint256 ID of the token to be minted by the 
msg.sender
   */
  function _mint(address to, uint256 tokenId) internal {
    super._mint(to, tokenId);

    _allTokensIndex[tokenId] = _allTokens.length;
    _allTokens.push(tokenId);
  }

We can see the _allTokens array is incremented after a mint. Conversely, it is decremented after a burn. The totalSupply is therefore not fixed, which is logical given the ambition of the project to create an art marketplace.

Related Topic