First ERC721 like smart contract on Mina Protocol with basic NFT minting and transferring UI
MinaFT is the first NFT contract implementation on Mina Protocol. By implementing the ERC721 like contract on Mina Protocol, building zkApps and marketplaces on Mina Protocol will be much easier and developer friendly. The first NFT Contract in Mina comes with very basic but nice UI. By using this UI, everyone can create their own collection. After that they can mint and send NFTs to any address on Mina. In the contract part, MinaFT is using off-chain storage and zkOracles. As Mina is the world's lightest blockchain, there are some limitations to on-chain data. Complex data structures like mapping and objects should be off-chain, but verifiable. By using hash comparisons and zkOracles, verifiying off-chain data became more easy. In MinaFT, we mocked zkOracles and build an off-chain storage solution on Mina. The off-chain storage is happening on IPFS via nft.storage
How it's made
We used snarkyjs library to implement zkApp's smart contract in TypeScript. We deployed and tested the smart contract in node.js environment. In the UI part, we used React to build MinaFT's user friendly interface. Also the most important part of the MinaFT is built on IPFS. Off-chain data storage is happening on IPFS by using nft.storage service.