Gas, security, and transparency.
The Provocotters smart contract will be available for viewing on Etherscan a few days prior to launch. Some objectives when creating the contract were; to keep gas low, to keep the contract simple and easy to evaluate, and ensure it is secure. We are using the ERC721A implementation of IERC721 developed by Azuki and proven in many projects. ERC721A requires that tokens are minted in sequence. Minting of multiple tokens using ERC721A costs only slightly more than minting one token. Currently the minting limit is three NFTs. (We may change that depending on input from the community.)
The contract's whitelist function verifies the calling wallet is on the list using ECDSA signatures created by the contract owner's wallet. This is the most simple and secure method for ensuring a valid wallet.
The metadata URI will be set prior to the sale. The metadata resides on IPFS and is pinned via Pinata. There is a backup of the metadata on our servers. While there is a setBaseURI write method exposed via the contract, this is to ensure that in the rare chance that IPFS no longer exists, that the token data could be retrieved. We will not be changing the Base URI after deployment unless there is a problem with IPFS (you can review some popular NFT contracts and see they follow the same structure). Therefore, no provenance hash is necessary, as the metadata is viewable once the Base URI is set.
Snipers and bots
The sequence (token id) of the most rare Provocotters was set manually so that only we can mint them for giveaway. The Provocotters available during the whitelist/public sale had their ids set at random (you can look at the metadata). Since we expose the metadata prior to the sale, won't snipers be able to figure out what to buy? Sniping only makes sense if there are more desirable (rare) NFTs in the sale. The most rare Provocotters will be minted by us, and randomly given away to holders after the sale is complete. Going through the exercise of reviewing the metadata, figuring out what token is next (which may be gone due to someone else purchasing), and determining if the NFT is desirable, therefore becomes a waste of time and effort. The limit for minting will be three Provocotters. While bots could use mulitple accounts, we will work to identify bots prior to adding accounts to the whitelist.
While IPFS is off chain, it is locked when written, so inherently NFTs that use IPFS are not dynamic.
Some projects have used various methods to add "dynamic" properties, but basically all of those efforts result in off chain metadata or recreation of the data.
Provocotters will have some dynamic qualities; additional plots of land, tools acquired during game play, and future additions.
This metadata will be also stored on IPFS and pinned, and linked to the smart contract metadata via an external URL. After minting, a holder can view this data via the external URL (via the website).
Future smart contracts for giveaway properties will link back to the original Provocotter smart contract to ensure ownership is in sync.