1

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?

1

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.

6
  • so when the 16,428'th token is minted, no more artworks are allowed and SuperRare will shut down their business like Job All Done? – user610620 Mar 5 at 17:17
  • 1
    @user610620 I looked to the smart contract and the answer is no. The totalSupply is flexible, you can see my update. – clement Mar 6 at 8:43
  • in terms of _allTokens being decremented after a burn, does someone burn NFTs simply by sending to a random or the 0x00000 address? How easy is it to retract mistakes of sending NFTs? a $100k NFT could be burned instantly by a sending mistake. who are the burn details sent to, re: the pop-up info box? – user610620 Mar 6 at 17:14
  • in terms of _allTokens being decremented after a burn, does someone burn NFTs simply by sending to a random or the 0x00000 address? No, the relevant mappings/arrays are modified, there is no transfer. However it emits the transfer event with the zero address as the recipient, but it's purely conventional. – clement Mar 7 at 8:49
  • To burn a token, the NFT owner must explicitly call the high level burn function (deleteToken). An "accidentally burn" is therefore very unlikely. But if it happens, it is irreversible. – clement Mar 7 at 8:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.