Milky Way is a decentralized fullstack web application developed with Next.js, Solidity, Hardhat, Openzepplin, using IPFS for file storage. It is a NFT Marketplace for users to mint, list, sell, and buy NFTs.
- Blockchain - Meter (optional RPC provider)
- Ethereum Development Environment - Hardhat
- Front end framework - Next.js & React
- Ethereum web client library - Ethers.js
- File storage - IPFS
run npm install
after git clone
run npm run dev
This contract uses OpenZepplin ERC721 standard, developed with Hardhat(development environment). The contract contains standard functions, namely minting tokens, updating listing price, creating sale, reselling tokens, transferring ownership of token, returning unsold market items, returning purchased items for users, returning only listed items for users.
The project is a platform for users to mint, list/relist, sell, and buy NFTs. Users must login with their metamask in order to buy, sell, list, or relist the NFTs. The website recognizes each user's metamask account as a unique valid login account, so users would not have to register to the platform to log in. Users may connect to their metamask in the Dashboard if they have not already done so. The button on the rightmost side of the dashboard will show whether or not a user is connected, or logged in. Without connecting to the metamask, users may only browse the marketplace, but would not be able to mint, buy, or sell NFTs. The "Collection" button in the dashboard shows users their bought collections, which they can re-list to the marketplace. The "Listed" button will render what users have listed in the marketplace.
Upon connecting to the metamask, the rightmost button will show status as "metamask connected", and users may then create (mint), buy, or list NFTs.
The Carousel on the main page is just a demonstration of the latest drops of NFTs, upon clicking "view drop" the page redirects to a page that demonstrates an about page of a particular artwork.
Milky Way runs on the Meter sidechain, which helps speed up the process of minting, buying, and selling NFTs as more transactions can be done per node per second, all with lower gas fee.
Milky Way project demo here
Original smart contract tutorial by Nadir Dabit