LogoLogo
  • Getting Started
    • Vanar
      • 🌐Overview
      • 🪙$VANRY Token
      • 🏛️The Vanar Foundation
    • Why Vanar?
      • 💡Our Philosophy
      • 🌍Green Chain
      • 🚀Fixed Fees
      • ⁉️Why L1?
      • 🏅Why Choose Vanar
      • ⭐Proof of Reputation
    • Vanar Architecture
      • Protocol Customizations
        • Native Gas Token ($VANRY)
        • Fixed Fees
        • Transaction Ordering
        • Block Rewards
        • Block Time
        • Block Size
      • EVM Compatibility
      • Consensus Mechanism
      • Fixed Fees
        • Gas Fees Tiers
        • How it works
        • Gas Price API
        • Fixed Fees Management
        • $VANRY Token Price API
  • Builders
    • For Developers
      • 🪐Vanar Network Details
      • ☑️Adding Network to Wallet
      • 🔗Connect Wallet to Vanar Chain
      • ⛽Gas Estimation
      • Build with thirdweb
        • Connect
        • Contracts
        • Engine
        • SDKs
      • Tutorials
        • Deploy a Token Contract - ERC20
        • Deploy an NFT Contract - ERC721
        • Deploy a Token Contract - ERC20 (Thirdweb)
        • Deploy an NFT Contract - ERC721 (Thirdweb)
    • Vanguard
      • Explorer
      • Faucet
      • Test $VG
  • Nodes and Validators
    • Staking
      • How To Stake
      • How To Unstake
      • How To Claim Rewards
    • Vanar Nodes
    • Setup a RPC Node
    • Setup a Validator Node
  • Tools
    • GroV
      • Frequently Asked Questions
  • White paper
  • vanarchain.com
Powered by GitBook
On this page
  1. Builders
  2. For Developers
  3. Tutorials

Deploy a Token Contract - ERC20

Deploying an ERC-20 token on Vanar chain is a straightforward process if you have some experience with Ethereum development. Below is a step-by-step tutorial on how to deploy an ERC-20 token using Hardhat, a popular Ethereum development framework. Make sure you have Node.js and npm installed before you begin. Below are the libraries and tools used for this tutorial:

  • OpenZeppelin - used for standard ERC20 base contract that is well tested and used by many production scale projects

  • Hardhat - is a tool and an environment that helps you compile, build, deploy and test you smart contracts along many other features.

Prerequisites:

  1. Node.js and npm installed on your machine.

  2. Basic knowledge of Solidity and Ethereum development.

Step 1: Set Up a New Hardhat Project

If you don't already have a Hardhat project, you can create one by following these steps:

  • Create a new directory for your project and navigate to it in the terminal:

mkdir my-erc20-token
cd my-erc20-token
  • Initialize a new Node.js project with npm:

npm init -y
  • Install Hardhat as a development dependency:

npm install --save-dev hardhat
  • Initialize Hardhat in your project:

npx hardhat

Follow the prompts to configure your project.

Step 2: Write the ERC-20 Token Contract

Now, you'll need to create a Solidity smart contract for your ERC-20 token. Create a new file called Token.sol in the contracts directory.

Here's a basic example of an ERC-20 contract:

// contracts/Token.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract TestToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("Test Token", "MNA") {
        _mint(msg.sender, initialSupply);
    }
}
  • Make sure to install OpenZeppelin's ERC-20 library if you haven't already:

npm install @openzeppelin/contracts

Step 3: Configure Hardhat

In your Hardhat project, configure the deployment by modifying the hardhat.config.js file. You can specify the network, account, and other settings for deployment.

Here's an example configuration:

// hardhat.config.js
require("@nomiclabs/hardhat-waffle");
require("@nomiclabs/hardhat-ethers");
require("@nomiclabs/hardhat-etherscan");

module.exports = {
  networks: {
    // Add network configurations here (e.g., for local development, testnets, or mainnet).
    VANAR_TESTNET:{
      url: "RPC_VANAR_VANGAURD",
      accounts: ["PRIVATE_KEY_OF_THE_DEPLOYER"],
      chainId: 7860
    }
  },
  etherscan: {
    apiKey: "YOUR_ETHERSCAN_API_KEY", // Replace with your Etherscan API key
  },
  vanar: {
    apiKey: "YOUR_VANAR_API_KEY", // Replace with your VANAR API key
  }
  solidity: "0.8.0",
};

Step 4: Deploy the ERC-20 Token

Now, you can deploy your ERC-20 token using Hardhat. Create a deployment script in the scripts directory (e.g., deployERC20.js) to deploy the contract:

mkdir my-erc20-token
// scripts/deployERC20.js
const { ethers, upgrades } = require("hardhat");

async function main() {

  const maxSupply = 1000000 * (10 ** 18); // To mint 1,000,000 tokens

  const [deployer] = await ethers.getSigners();

  console.log("Deploying TestToken from account:", deployer.address);

  const TestToken = await ethers.getContractFactory("TestToken");
  const testToken = await TestToken.deploy(maxSupply); // Initial supply

  console.log("TestToken deployed to:", testToken.address);

  await testToken.deployed();
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });

Step 5: Deploy the Token

Run the deployment script using Hardhat:

npx hardhat run scripts/deployERC20.js --network <network_name>

Replace <network_name> with the configured Vanar network you want to deploy the token on.

That's it! You've deployed an ERC-20 token using Hardhat on Vanar. Make sure to test your token and handle any additional functionalities such as transfers, approvals, and more if needed.

PreviousTutorialsNextDeploy an NFT Contract - ERC721