Use this file to discover all available pages before exploring further.
Verify your smart contract source code on the TeQoin block explorer to make it publicly visible and enable users to interact with your contract directly.
Compiler Version: Select exact version (e.g., v0.8.20+commit.a1b79de6)
Open Source License: Select license (MIT, GPL-3.0, etc.)
Optimization: Select “Yes” if you used optimizer
Optimization Runs: Enter runs (usually 200)
Contract Code: Paste your entire .sol file
Constructor Arguments: Enter if your contract had constructor args
Click “Verify and Publish”
Multi-Part Files Method
For contracts with imports:
Select “Solidity (Multi-part files)”
Compiler Version: Select exact version
Optimization: Yes/No
Upload all .sol files:
Main contract file
All imported files (OpenZeppelin, etc.)
Constructor Arguments: If applicable
Click “Verify and Publish”
Standard JSON Method (Recommended)
For Hardhat/Foundry projects:This is the most reliable method for complex projects.Generate Standard JSON Input:
# For Hardhat: npx hardhat flatten contracts/MyToken.sol > flattened.sol # Then use the flattened file in single-file method # OR generate standard JSON: npx hardhat compile --force # JSON is in artifacts/build-info/
For Foundry:
# Generate standard JSON forge verify-contract CONTRACT_ADDRESS \ src/MyToken.sol:MyToken \ --show-standard-json-input > standard-input.json # Upload this JSON to the explorer
Upload the JSON file and click “Verify and Publish”
# Check what version you used to compile # In Hardhat: cat hardhat.config.js | grep solidity # In Foundry: cat foundry.toml | grep solc_version # Make sure this EXACT version is selected on the explorer # Including the commit hash!
'Bytecode does not match' error
The compiled bytecode doesn’t match the deployed bytecode.Possible reasons:
Wrong compiler version
Optimization settings don’t match
Constructor arguments incorrect
Wrong source code
Solution:
// Check your hardhat.config.js settings solidity: { version: "0.8.20", // Must match exactly settings: { optimizer: { enabled: true, // Must match deployment runs: 200 // Must match deployment } } }
'Invalid constructor arguments' error
Constructor arguments are not encoded correctly.Solution:
# Use cast to encode (Foundry) cast abi-encode "constructor(string,string)" "MyToken" "MTK" # Or use ethers.js const encoded = abiCoder.encode(["string", "string"], ["MyToken", "MTK"]); # Make sure to remove the "0x" prefix when pasting!
'Too many requests' error
You’ve exceeded the API rate limit.Solution:
Wait a few minutes before trying again
If using Hardhat, it might be retrying automatically
Contact support for higher rate limits
Verification stuck on 'Pending'
The verification is queued but taking a long time.Solution:
Wait 5-10 minutes
Check the explorer’s status page
Try manual verification via UI
Contact support if stuck for > 1 hour
'Already verified' but not showing
Contract was verified but source code not visible.Solution: