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?
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.
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.