Description

A scientific game that teaches the user about the periodic table of elements and let's the user explorer reactions and get creative mixing elements. The player receives tradeable NFTs as elements and can merge the NFTs to create new materials, such as 2 hydrogens and 1 oxygen makes water. Add lithium to the water and you a new substance. Minting elements aims to be physically accurate by using E = mc^2, where E is directly correlated to the amount of energy it takes to mine 1 bitcoin. Thus in effect, bitcoin can be directly exchanged to tokens that represent the energy if the conversion was 100% efficent. These elements can be combined into infinity many elements. They can also act as primitives for other blockchain games that require physically accurate elements. In the future, gov can be implemented to add more elements and reactions. We aim that in the future all tradeable NFTs that can be sold in marketplaces or back to the contract. The game uses Unity interface for front end for a more fun user experience while also utilizing the speed of polygon/mumbai and the randomization of chailink's VRF tool. The NFTs have metadata tied to them via IPFS to give a visualization of each Element.

Bit=Chem showcase

How it's made

The front end uses the react framework utilizing web3modal to connect a wallet. Sequence and browserwallets are fully supported. In order to give a bit more interaction, we used unity to give a gamified feel to the chemistry set. Learning the models and libraries fairly quickly was quite challenging on it's own but seeing the capabilities on the Polygon studios demo gave us ideas. The backend utilized OZ Erc1155 to mint an infinite amount of elements requires for many users to play the game. Metadata was uploaded to IPFS to give visual representation to the NFTs so they could visually be easier to trade and represent each element and merged item easily. We used chainlink's VRF to gamify the mixing for success or no success. Because of it's two transaction nature, we have to get a little creative in how to start it off but after the first time it was called, calling it after each mutation made sense.