How to deploy a ERC-721 token on Avalanche with OpenZeppelin

1. Setting up Metamask

  • 0xa869 for Fuji Testnet
  • 0xa86a for Mainnet

2. Acquiring faucet tokens

In order to operate on C-CHAIN, you will need to acquire C-AVAX tokens from the faucet. Simple visit the link, provide your Ethereum address and click “REQUEST 10 AVAX”. Next, go to your Metamask and you will see updated balance. Tokens from this faucet are only for testing purposes and don’t represent any value.

3. Creating NFT token with Remix

Now it’s time to create our NFT! Visit Remix, click “SOLIDITY” and “New file”. After that, navigate to the Workspaces section (files under the logo) and see a blank file, which you should rename. In this case we name it avatest.

import “https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol";
  • the ability for holders to burn (destroy) their tokens
  • a minter role that allows for token minting (creation)
  • a minter role that allows stopping all token transfers
  • token ID and URI auto-generation

4. Deployment

{
“id”: 0,
“description”: “My NFT”,
“external_url”: “https://forum.openzeppelin.com/t/create-an-nft- and-deploy-to-a-public-testnet-using-truffle/2961”,
“image”: “https://twemoji.maxcdn.com/svg/1f40e.svg",
“name”: “My NFT 0”
}

5. Minting NFT

Return to the Deploy and run transactions section and click under “Deployed contracts”. Here you can see some functions of the contract.

6. Adding NFT token to Metamask

Open your Metamask Assets and click “Add token”. Insert the contract address we previously found out (in our case — 0xB281Dd2aF018616e30A7dc484178122a18C6FBaf), token symbol — AVATEST and since NFT is non-fungible — leave decimals at 0.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ivan Staker

Ivan Staker

12 Followers

Professional validator, taking part in major testnets and running mainnets.