This project introduces and demonstrates a technique by which two NFT contracts can
work together to require that a predetermined number of people show interest in a project before the final NFT is minted.
In this case, there are two contracts: Intend and ToPlay.
The Intend contract is the one that is designed to gauge interest in the project. It is a
soulbound NFT that is limited to one per address. This NFT only exists to be burnt during
the minting of the ToPlay NFT. If the holder does not mint the ToPlay, they can burn the
NFT by calling the burn contract directly.
The ToPlay contract will not allow minting until enough Intend NFTs have been minted.
Once minting is enabled, only accounts that hold an Intend NFT will be allowed to mint.
During the minting process, the ToPlay contract burns the Intend NFT. The end result is
the minting account holds a ToPlay NFT.
The ToPlay NFT is a fully functional 721 with SendLock functionality (see the SendLock
NFT demo project).
Minting
The minting cost of the Intend NFT will be 5 tfuel and there is no upper limit to the
number minted. The minting cost of the ToPlay NFT will be 4 tfuel. This particular NFT
will be limited to 84.
Note that the account that mints the ToPlay NFT must already hold a Intend NFT.
Minting of the ToPlay NFTs will open after 7 Intend NFTs have been minted.
Image
There are five images associated with this project. One for the Intend NFT and four for
the ToPlay NFT. The resulting ToPlay images are distributed based upon a mod of the
token id that is minted.
HashTable
The main project metadata file is intendtoplay.json. This file will hold the hashtable used
by this project. nftGenCon.exe can be used to validate all files.
Conclusion
There are no extra promises provided with these NFTs. By participating you get first
access to the source code and support my continued smart contract demo projects.