Limits of the ERC721 standard

Hi folks,

I’ve had this small fun project in my head for the past few weeks regarding NFTS (not gonna spill the beans obviously).

I’ve been reading the docs of the ERC721 standard to familiarize with Solidity (I’ve got a background in CS so it’s all good), yet I’m not entirely sure whether all aspects of my requirements are achievable.

  1. Anyone can mint an NFT but it would still require my confirmation to actually “publish” (to combat trolls, racism, hate speech, you name it)
  2. Minted NFTS become property of 1 single address, a sort of storage vault
  3. The so called storage vault can’t destroy, nor transfer the NFT to another wallet (it is basically stuck forever)
  4. The contract disables minting forever if a ‘killswitch’ is triggered or a certain target is met
  5. Minting comes with a fixed fee (besides the GAS fees). This fee is automatically transferred to another wallet.

I would appreciate some input on this.

Thanks in advance.

1 Like

Hi @Westerlo,

Welcome to the community :wave:

If your metadata is centralized, then you can censor offchain.

If your metadata is decentralized, then you could have either an approval step to set the metadata or the ability to remove the metadata after the fact.

You could have tokens minted to a single token holder which could be a contract (such as a multisig).

Yes. You could have a simple contract that implements the IERC721Receiver interface.
Such as: https://docs.openzeppelin.com/contracts/4.x/api/token/erc721#ERC721Holder

Yes. Though depending on what the condition was, a transaction may be required to disable minting.

Yes. I would recommend that functionality not required for the life of the token be put in a separate contract. So your sale contract could have the MINTER_ROLE until it was removed.

I could not have asked for a better response.

Thanks a lot, I appreciate it.

1 Like