Giter VIP home page Giter VIP logo

hardhat-nft's Introduction

The Ultimate NFT Repo


NFT Pug NFT Happy NFT Shiba NFT Frown NFT St.Bernard


  1. A Basic NFT
  2. IPFS Hosted NFT
    1. That uses Randomness to generate a unique NFT
  3. SVG NFT (Hosted 100% on-chain)
    1. Uses price feeds to be dynamic

Rinkeby testnet contract addresses:

  • BasicNft - 0x41Ac0A6ca3AEd9F04EA04DD1A31D5E77328eF65d
  • DynamicSvgNft - 0xf53Bc92aadd748296Cf2b5c5AD33B447d2930e6D
  • RandomIpfsNft - 0x9a360514C7FA30C23a4ab84bBC004Be12E3f869d

Getting Started

Requirements

Quickstart

git clone https://github.com/Nedick/hardhat-nft.git
cd hardhat-nft
yarn

Useage

Deploy:

yarn hardhat deploy

Testing

yarn hardhat test

Test Coverage

yarn hardhat coverage

Deployment to a testnet or mainnet

  1. Setup environment variabltes

You'll want to set your RINKEBY_RPC_URL and PRIVATE_KEY as environment variables.

  • PRIVATE_KEY: The private key of your account (like from metamask). NOTE: FOR DEVELOPMENT, PLEASE USE A KEY THAT DOESN'T HAVE ANY REAL FUNDS ASSOCIATED WITH IT.
  • RINKEBY_RPC_URL: This is url of the rinkeby testnet node you're working with. You can get setup with one for free from Alchemy
  1. Get testnet ETH

Head over to faucets.chain.link and get some tesnet ETH & LINK. You should see the ETH and LINK show up in your metamask. You can read more on setting up your wallet with LINK.

  1. Setup a Chainlink VRF Subscription ID

Head over to vrf.chain.link and setup a new subscription, and get a subscriptionId. You can reuse an old subscription if you already have one.

You can follow the instructions if you get lost. You should leave this step with:

  1. A subscription ID

  2. Your subscription should be funded with LINK

  3. Deploy

In your helper-hardhat-config.js add your subscriptionId under the section of the chainId you're using (aka, if you're deploying to rinkeby, add your subscriptionId in the subscriptionId field under the 4 section.)

Then run:

yarn hardhat deploy --network rinkeby --tags main

We only deploy the main tags, since we need to add our RandomIpfsNft contract as a consumer.

  1. Add your contract address as a Chainlink VRF Consumer

Go back to vrf.chain.link and under your subscription add Add consumer and add your contract address. You should also fund the contract with a minimum of 1 LINK.

  1. Mint NFTs

Then run:

yarn hardhat deploy --network rinkeby --tags mint

Estimate gas cost in USD

To get a USD estimation of gas cost, you'll need a COINMARKETCAP_API_KEY environment variable. You can get one for free from CoinMarketCap.

Then, uncomment the line coinmarketcap: COINMARKETCAP_API_KEY, in hardhat.config.js and set REPORT_GAS environment variable to get the USD estimation. Just note, everytime you run your tests it will use an API call, so it might make sense to have using coinmarketcap disabled until you need it. You can disable it by just commenting the line back out.

Verify on etherscan

If you deploy to a testnet or mainnet, you can verify it if you get an API Key from Etherscan and set it as an environemnt variable named ETHERSCAN_API_KEY. You can pop it into your .env file.

In it's current state, if you have your api key set, it will auto verify rinkeby contracts!

However, you can manual verify with:

yarn hardhat verify --constructor-args arguments.ts DEPLOYED_CONTRACT_ADDRESS

Linting

To check linting / code formatting:

yarn lint

or, to fix:

yarn lint:fix

hardhat-nft's People

Contributors

nedick avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.