So I'm working on an NFT project that will eventually create a collection of approximately 3000 different unique NFTs. Kind of like cryptopunks.
Besides the ERC-721 contract, there will also be a server hosting a website where people will be able to go to mint said nft, as well as having the logic to generate the nft itself.
The issue I'm facing now is: how exactly can I guarantee the image will be 100% unique given 3000 or so possible combinations? I'm not quite sure if the information on the already-minted NFTs should be held serverside or in the ERC-721 contract itself. Having the information on the contract does seem to make more sense, but wouldn't that be a bit heavy? That would mean that whenever interacted with, the contract would know which NFT attributes have already been used for minting and would avoid minting a new one with any of those.
Is this the best way to approach it? Am I missing a best-practice?
Thanks!