NFT_Collection is a smart contract project for dynamic NFT collection.
Accounts can mint their own NFTs and then import them in their wallets.
The doggie NFT is stored on IPFS Network and the Moodify NFT is stored directly on-chain.
-
Important:
- Not real ether or private keys are used.
- This project can be deployed both to an in-memory local blockchain like Anvil or Sepolia Testnet.
- If you want to use Sepolia Testnet or any other, you have to make an account and use your keys to sign transactions.
- To use Sepolia you have to have some Sepolia Test Eth which can be aquired from a Faucet.
- Anvil would be easier to test with since it is a local Ethereum node provided by Foundry.
- The base deploy is for Anvil with a fake account and private key.
- To import your minted NFT you need to add the account to your Metamask and switch to Anvil network.
- If you don't have Anvil network you can add it manualy through metamask wallet.
For further info, please read the whole file, so you can interact with the project efficiently.
NOTE: you need to have WSL and Ubuntu in order to execute the project on Windows.
Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
Foundry consists of:
- Forge: Ethereum testing framework (like Truffle, Hardhat and DappTools).
- Cast: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
- Anvil: Local Ethereum node, akin to Ganache, Hardhat Network.
- Chisel: Fast, utilitarian, and verbose solidity REPL.
$ git clone https://github.com/GeorgiKostadinovPro/NFT_Collection
Review the Makefile to easily interact with the project.
After you connected to Metamask with account from Anvil and set the target network to Anvil you will be able to mint and switch tokens.
To mint or switch just be sure to execute the scripts properly and unable the NFT Media on Metamask.
Here is a freshly minted Dogo NFT
Here is a Happy NFT.
After Switching the NFT you can import it again.
$ forge --help
$ anvil --help
$ cast --help