Babel has two ERC721 contracts: Words and Lyric. Words mints users randomly generated unique 5-letter words. Lyric allows users to use those words to contribute to a sequence of three words, called a Lyric, replacing on of the existing words. Users participate in auctions for the right to mint the next lyric. The Babel token is the native currency of the protocol, which lets users purchase words, participate in lyric auctions, etc.
We use Chainlink VRF fed into a custom algorithm to mint the words. OZ ERC721Enumerable for the NFT contracts, and OZ ERC20 for Babel token. Hardhat handles all of the testing and deployment. The demo was done using Hardhat local network, but all the contracts are deployed to Rinkeby and interacting with the VRF properly. Using Rinkeby was a bit too slow for the demo. Frontend is all Next.js and ethers.js, with custom components and hooks.