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