Hardhat
These are the steps for verifying smart contracts via Hardhat. Hardhat is a comprehensive development environment that facilitates contract compilation, deployment, and authentication.
Step 1: Install Hardhat.
npm instructions:
npm install --save-dev hardhat
yarn instructions:
yarn add --dev hardhat
Step 2: Install the Hardhat plugin (requires v3.0.0+). Use either the npm
or yarn
commands:
npm instructions:
npm install --save-dev @nomiclabs/hardhat-etherscan
yarn instructions:
yarn add --dev @nomiclabs/hardhat-etherscan
Step 3: For hardhat.config.js
, add the following statement:
hardhat.config.js
, add the following statement:require("@nomiclabs/hardhat-etherscan");
For TypeScript, add the following line to hardhat.config.ts
:
import "@nomiclabs/hardhat-etherscan";
Step 4: Add Cascadia to hardhat.config.js
.
etherscan: {
apiKey: {
cascadia: "abc"
},
customChains: [
{
network: "cascadia",
chainId: 6102,
urls: {
apiURL: "https://explorer.cascadia.foundation/api",
browserURL: "https://explorer.cascadia.foundation",
}
}
]
}
apiKey
: Refers to the unique API key associated with the block explorer account.
network
: Specifies the name of the network, which must match the name of the apiKey.
browserURL
: Indicates the URL for accessing the block explorer interface.
chainID
: Identifies the unique identifier for the network chain being accessed.
apiURL
: Specifies the URL used for accessing the block explorer's API service.
The entire code should appear as follows:
require("@nomicfoundation/hardhat-toolbox");
require("@nomiclabs/hardhat-etherscan");
require('dotenv').config()
const private_key = process.env.PRIVATE_KEY
module.exports = {
solidity: "0.8.17",
networks: {
cascadia: {
url: "https://testnet.cascadia.foundation",
accounts: [private_key]
}
},
etherscan: {
apiKey: {
cascadia: "abc"
},
customChains: [
{
network: "cascadia",
chainId: 6102,
urls: {
apiURL: "https://explorer.cascadia.foundation/api",
browserURL: "https://explorer.cascadia.foundation",
}
}
]
}
};
Step 5: Check if Cascadia is successfully supported:
npx hardhat verify --list-networks
Step 6: To verify the contract, constructor arguments can be included with the verify task.
npx hardhat verify --network <network_name> DEPLOYED_CONTRACT_ADDRESS “Constructor argument 1”
For example:
npx hardhat verify –network Cascadia 0x856C336cD8eBDCE7B5Bb3F2DEB1bf3160B176880 31536000
Step 7: Contract verification can be confirmed via the console:

Last updated