Skip to main content

Deploy Smart Contract Using Hardhat

· 2 min read

Certainly! Let's walk through the steps to deploy a smart contract using Hardhat:

  1. Setting Up Hardhat:
    • Ensure you have Node.js and npm installed on your computer.
    • Create a new project directory:
      mkdir MyHardhatProject
      cd MyHardhatProject
    • Initialize an npm project:
      npm init -y
    • Install Hardhat:
      npm install --save-dev hardhat
  1. Writing the Smart Contract:

    • Navigate to the contracts/ directory and create a new file named MyContract.sol.

    • Write a simple Solidity smart contract. For example, a basic token contract:

      // SPDX-License-Identifier: MIT
      pragma solidity ^0.8.0;

      contract MyToken {
      string public name = "MyToken";
      string public symbol = "MTK";
      uint public totalSupply = 1000000;

      function transfer(address to, uint amount) external {
      // Transfer logic
      }
      }
  2. Configuring Hardhat:

    • Edit hardhat.config.js to configure your development environment:

      require("@nomiclabs/hardhat-waffle");

      module.exports = {
      solidity: "0.8.0",
      networks: {
      localhost: {
      url: "http://127.0.0.1:8545"
      }
      }
      };
  3. Compiling the Smart Contract:

    • Compile your smart contract:
      npx hardhat compile
    • Check the artifacts/ directory for compiled contract information.
  4. Writing the Deployment Script:

    • In the scripts/ directory, create a script for deploying your contract. For example:

      async function main() {
      const MyToken = await ethers.getContractFactory("MyToken");
      const myToken = await MyToken.deploy();
      console.log("MyToken deployed to:", myToken.address);
      }

      main().then(() => process.exit(0)).catch(error => {
      console.error(error);
      process.exit(1);
      });
  5. Deploying the Contract:

    • Start a local Ethereum network:
      npx hardhat node
    • Execute the deployment script:
      npx hardhat run scripts/deploy.js --network localhost
    • Verify the output for the deployed contract address.

That's it! You've successfully deployed a smart contract using Hardhat. Feel free to explore more features and customize your development environment. 😊🚀