0


I have created, deployed and verified an ERC721 smart contract for an NFT collection. The base URI is set in the contract, but no tokens have been minted yet and the contract hasn't had any transactions (besides the initial creation).

Now I have decided to change how the contract functions (particularly, implement allowlist mint). If I create and deploy another contract having the same base URI as the original contract, will there be a problem with my tokens' authenticity?

Thanks

2 Answers 2

0

If your deployed contract has logic to disable minting it's ok but maybe. If not, duplicate minting could happen, which isn't right.

If your deployed contract doesn't have a disable, you could self-destruct the defunct contract. Might want to do that anyway.

If your contract doesn't have self-destruct code, it's still possible to do it apparently. This post suggests deploying another contract and using a delegate call.

https://www.smartcontract.engineer/challenges/solidity-deleting-contracts

how to call "selfdestruct" if not written in contract, as documentation says its possible

2
  • Hi, thanks for your response. The previous contract does have logic to disable minting, it has a sale state boolean which is flipped by the owner. But self-destruction sounds more appealing. I haven't implemented anything of that sort in the contract, can I still do it?
    – jaythebird
    Jun 6, 2022 at 15:06
  • apparently it is possible even if the contract doesn't have self-destruct code. I've never done it. I added a link to a post to the answer.
    – sola24
    Jun 6, 2022 at 15:14
0

This question is off-topic as it tackles a topic which isn't technical, but let's answer it regardless.

By authenticating your contract on external marketplaces you are giving it credibility.

I can always make a copy of your contract and paste your art URI into the baseURI() function and pretend it's mine. But it's not. What you market and expose to the community is considered the "real" project, everything aside from that is a copycat and thus worthless.

Also, why not simply forget about that first contract, call it a test run, no need to self-destruct, although calling a pause would be good, if it's available.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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