Enable anyone to easily mint an NFT for any day of their life.
The current NFT ecosystem is designed for creatives & crypto enthusiasts. In order to attract a more general audience to the space, NFTs should be created for the one thing everyone owns & values deeply: time. Each day is a unique asset for every individual. The memint platform allows anyone to mint a day of their life as an NFT. By doing so, the user can own a non-fungible record of their history. These records could be sold, transferred, or eventually mutated with other people's memint NFTs. The goal of the platform is to be as simple & inclusive as possible. As soon as anyone registers, they have access to thousands of assets that they hadn't previously seen value in. This enables anyone to easily participate in Web3, without needing a background in design or development. Rather than accepting cash for your birthday or graduation, you can mint the day as an NFT and sell it to the highest bidder. You & your friends could all send your NFTs with photos to a bride for the day of her wedding. Celebrities could mint even the most ordinary day of their lives & sell it to their worshipping fans. By allowing anyone to mint records to the blockchain, the amount of empowerment & utility is endless.
How it's made
The project is a React application that connects primarily to the Moralis SD, NFTPort API, and OpenSea API. I first started by deploying two ERC721 contracts through the NFTPort API for the Polygon and Rinkeby networks. Users can choose whether to mint their NFTs on either network, which is managed by React Context. Users register by connecting their MetaMask wallet, which creates a User through the Moralis SDK (react-moralis). Once they've connect their wallet, I collect their birthdate through a quick onboarding process, which is also stored in Moralis. Their dashboard will suggest dates that are likely important to them as recommended NFTs to get started. The calendar page utilizes Moment.js to display every day between their date of birth & today. Users can browse & select a date and visit an individual day page. If they add details to the page, a record of the day is created in Moralis and updated with a title & description. Users can upload an image file, which is directly uploaded to IPFS. Once they've added a title, description, and image to their day, they can mint the day as an NFT. I create the metadata & use the NFTPort API to upload the metadata JSON to IPFS. Once the metadata URI is returned, I use the NFTPort API again to mint the NFT to their desired network. I store the results with the day object in Moralis. They are redirected to the new NFT/asset page, where I query Moralis for the transaction hash and then use the NFTPort API to pull in data about the mint. If the NFT was minted on Rinkeby, we can query the OpenSea API for more information about the asset. Once we have the OpenSea asset, I enable the user to create a sell order on OpenSea for whatever price they choose. They can also cancel this sell order from the application. The OpenSea API does not yet support Polygon, but I still display a link to the asset's OpenSea page. Users can easily view which days of their life they have edited and/or minted to the blockchain, with the network specified.