Verify Contracts
Verifying your smart contract makes its source code publicly visible and auditable on the block explorer, creating transparency and trust. Here are the recommended methods to verify contracts on the Sonic mainnet explorer and the Sonic Blaze testnet explorer.
— Method 1: Hardhat Verification — Method 2: Programmatic Verification — Method 3: Manual Verification — Method 4: Flattened Source — Troubleshooting
Method 1. Hardhat Verification (Recommended)
The most streamlined way to verify contracts is using Hardhat with hardhat-toolbox:
Install Hardhat toolbox:
Configure
hardhat.config.js
:
Store your SonicScan API key in a
.env
file:
Verify your contract:
Method 2: Programmatic Verification
For automated deployments, you can verify contracts programmatically in your deployment scripts:
Method 3: Manual Verification
If automated methods fail, you can verify manually through the explorer interface:
Go to the Sonic explorer (or the testnet explorer)
Navigate to your contract address
Click the Contract tab and Verify & Publish
Fill in the verification details:
Contract address
Compiler type (single file recommended)
Compiler version (must match deployment)
Open-source license
Optimization settings (if used during deployment)
If your contract has constructor arguments:
Generate ABI-encoded arguments at e.g. HashEx
Paste them in the Constructor Arguments field
Complete the captcha and submit
Method 4: Flattened Source
For contracts with complex dependencies that fail standard verification:
Install Hardhat flattener:
Flatten your contract:
Clean up the flattened file:
Keep only one SPDX license identifier
Keep only one pragma statement
Use this file for manual verification
Troubleshooting
Common verification issues to check:
Compiler version must match deployment exactly
Optimization settings must match deployment
Constructor arguments must be correctly ABI-encoded
Library addresses must be provided if used
Source code must match deployed bytecode exactly
Flattened files should not have duplicate SPDX/pragma statements
Last updated