Verify Smart Contract using Hardhat
Verifying a smart contract allows developers to review your code from within the CeloScan Block Explorer
Prerequisites​
Before the installation steps you need to have your hardhat project initialized using the command
npx hardhat init
Make sure to have dependencies installed!
Configuration​
Some initial installation and configuration is required.
Installation​
Use the following command to install
npm i hardhat-celo --save-dev
Hardhat Configuration​
Import the plugin in your hardhat.config.js
:
require("hardhat-celo");
Or if you are using TypeScript, in your hardhat.config.ts
:
import "hardhat-celo";
Remove / Comment the import for @nomicfoundation/hardhat-toolbox
Add the following configuration to the config
object in hardhat.config.js
.
networks: {
alfajores: {
// can be replaced with the RPC url of your choice.
url: "https://alfajores-forno.celo-testnet.org",
accounts: [
"<YOUR_PRIVATE_KEY>"
],
},
celo: {
url: "https://forno.celo.org",
accounts: [
"<YOUR_PRIVATE_KEY>"
],
}
},
etherscan: {
apiKey: {
alfajores: "<CELOSCAN_API_KEY>",
celo: "<CELOSCAN_API_KEY>"
},
},
Verifying Contracts​
Use the following command (Make sure your contracts are compiled before verification)
Alfajores Testnet
npx hardhat verify <CONTRACT_ADDRESS> <CONSTRUCTOR_ARGS> --network alfajores
Celo Mainnet
npx hardhat verify <CONTRACT_ADDRESS> <CONSTRUCTOR_ARGS> --network celo
Alternatively, You can read an in depth guide about how to deploy and verify contracts on Celo Block Explorer (sourcify) programmatically using the hardhat-deploy plugin here.