Note: This is only a demo. The contract is deployed on the Goerli test network. Therefore, you can mint and create auctions only on the testnet.
Feature | Description |
---|---|
Mint NFT | Mint NFT with a unique name and description. |
Create Auction | Create an auction for your NFT. |
Bid | Bid on an auction. |
Buy Now | Buy the NFT with paying full amount. |
Refund | Withdraw your bid. |
End Auction | End the auction. |
Cancel Auction | Cancel your auction before it ends. |
Withdraw Funds | Withdraw your funds. |
This project is a NFT minting and auction platform. the PatikaBears NFT collection is for Auctioning and it is mintable by everyone with 0.02ETH. After minting a NFT you can auction your NFTs, or you can bid or buy other auctions. It is a decentralized application that runs on the Ethereum blockchain. It is built with Solidity, NextJS. It is compiled and tested with Hardhat, Ethers, Waffle, and Hardhat toolkits.
- 1. Create example NFTs and upload them to IPFS
- 2. Create a new ERC721 contract and test it.
- 3. Create Auction contract and test it.
- 4. Create folder structure for frontend.
- 5. Create tests for the contracts.
- 6. Deploy the contracts to the testnet.
- 7. Interact with the contracts via frontend.
- 8. Create UI for minting NFTs.
- 9. Create UI for viewing NFTs.
- 10. Create UI for auctioning and bidding NFTs.
- 11. Create UI for viewing auctions and biddings.
- 12. Fix bugs and fix wagmi query bugs.
- 13. Re-create all the UI and refactor the code.
- 14. Add refund, cancel, end auction features.
# Clone the repository
git clone https://github.com/fixfon/nft-mint-and-auction-app.git
# Go inside the directory
cd nft-mint-and-auction-app
# Install dependencies
npm install
Create a .env
file in the root directory and copy environment variables from .env-example file.
ALCHEMY_GOERLI_ENDPOINT=
DEPLOYER_PRIVATE_KEY=
ALCHEMY_API_KEY=
ETHERSCAN_API_KEY=
You can compile the contracts with the following command:
npx hardhat compile
After compiling the contracts, you can run the tests with the following command:
npx hardhat test ./test/PatikaBears.ts
npx hardhat test ./test/Auction.ts
npx hardhat run ./scripts/deploy.ts --network alchemy
npx hardhat verify --network alchemy DEPLOYED_NFT_CONTRACT_ADDRESS
npx hardhat verify --network alchemy DEPLOYED_AUCTION_CONTRACT_ADDRESS "DEPLOYED_NFT_CONTRACT_ADDRESS"
npm run dev
- Solidity - Smart Contract Programming Language
- Hardhat - Ethereum development environment
- Ethers - Ethereum JavaScript API
- Waffle - Ethereum smart contract testing framework
- NextJS - Frontend
- TailwindCSS - CSS Framework
- IPFS - File storage
- Moralis - Backend as a Service for Interacting with Contracts
- Alchemy - Ethereum Node Provider
- RainbowKit - for Wallet access and logining
- Etherscan - for verifying the contracts
Created by Fixfon for Patika.dev | Akbank Web 3 Practium
Discord: fixfon#1111