OpenSea clone NFT marketplace for Aurora EVM implemented on the NEAR Blockchain
The project has been built for the NEAR MetaBUILD Hackathon
- Hackathon: https://devpost.com/software/nft-marketplace-o4hf58
- Youtube: https://youtu.be/aUYtk8nAbiI
- Live Demo: https://nft-marketplace-near.vercel.app/
The NFT Marketplace as a decentralized Web3 application built over a javascript software stack using EVM-based backend software, tools, and specification but for a non-EVM protocol platform i.e. NEAR using Aurora EVM and its currency.
This enables users to list their NFTs on the NEAR platform and get benefits of lower gas charges and the benefit of a non-EVM blockchain protocol and platform. Here NFTs trading like directly sells, auction, lists, unlisting, etc. are feasible.
Currently its configured to connect Aurora TestNet. so connect this website with your Aurora TestNet network in your MetaMask Wallet and ensure you have sufficent balance.
- Frontend application has built on the react.js (javascript) and @mui material design UI library
- Smart contracts have been built on solidity and compiled with the Hardhat EVM development tool
- VS Code, Hardhat and Truffle, and MetaMask, Ethers have been used in the application development
- Ethers and @web3-react javascript library used for communication with the MetaMask wallet and the smart contracts deployed at Aurora implemented over the NEAR platform.
- Pinata for storing and pinning media and metadata in the IPFS decentralized file system.
- Metamask for Aurora wallet and cryptocurrency
-
Download the repository into your computer and go inside its root directory
-
Install libraries in the root directory by command
npm install
-
craete a
.env
file on the root directory and add followingsNODE_ENV=production AURORA_PRIVATE_KEY=<Your Aurora TestNet Account's Private Key> REACT_APP_API_KEY=<Pinata API_KEY> REACT_APP_API_SECRET=<Pinata API_SECRET> REACT_APP_JWT=<Pinata JWT>
Change the address (in the src/config/contractAddress.js
) if you deploy the factoryContract and marketPlace freshly using the Hardhat CLI
Address of currently deployed smart contacts are
exports.factoryContractAddress = "0xf5351DFC815b83289d1b4aDeC5c6A423eb523729";
exports.nftMarketplaceAddress = "0x2b82bedAaB3C8dCD16b71a5cc7AB119Afa6D7D2C";
It is recommend you to
- FIrst used the addresses (as above) of already deployed smart contracts on the Aurora Testnet for frontend application developemnt and integration with smart contracts perspective.
- Thereafter do the changes and deploy smart contracts then integrate with your frontend application
Hardhat is a very popular EVM (Ethereum Virtual Machine) development environment. It is Strongly Recommended to check about the Hardhat at https://hardhat.org/getting-started/ before proceeding further below
npx hardhat compile
Aurora Testnet:
npx hardhat test --network testnet_aurora
localhost:
npx hardhat test --network localhost
this will compile the contract if not done earlier
Use Hardhat CLI to deploy contracts
Aurora TestNet:
npx hardhat run scripts/deploy.js --network testnet_aurora
Hardhat takes testnet_aurora parameters from the hardhat.config.js
in the root directory
Local Hardhat EVM environment:
-
Run Hardhat EVM development environment in your computer
npx hardhat node
-
Deploy contracts with running the local EVM
npx hardhat run scripts/deploy.js --network localhost
No need to do any configuration in the file
hardhat.config.js
for the deployement to localhost since it is automatically identified by the Hardhat CLI
This project was bootstrapped with Create React App.
Refer the Create React App link for more
- On refresh page other than home cause wallet disconnection issue so contents on the same page doesn't loads but after going to other pages by clicking links then its works fine. [ToDo] This bug needs to fixed