Why verify
When you deploy, the chain only stores bytecode. Verifying uploads your Solidity source and compiler settings to BOTScan. BOTScan compiles them and checks that the result matches the bytecode on chain. Once it matches:- Anyone can read your source on the contract’s Code tab.
- BOTScan shows Read contract and Write contract forms built from your ABI.
- Transactions and events are decoded into function names and values.
- Users, auditors and integrators can check what your contract does before they trust it.
How BOTScan verification works
BOTScan runs Blockscout, an open-source explorer. That matters for your tools:- Use the Blockscout verifier in Hardhat and Foundry, not the Etherscan one.
- No API key is needed.
- The verification endpoints are:
Blockscout can also match a new contract against one it has already verified with the same bytecode. If you deploy a contract that someone else has verified before, BOTScan may show it as verified straight away, and your tool reports that it is already verified.
Choose a method
With Foundry you can verify during the deploy by adding
--verify to forge script. See Deploy with Foundry.
What must match
Verification fails if any of these differ from the deploy:- Compiler version, down to the patch number.
- Optimizer on or off, and the number of runs.
- EVM version (
cancunon BOT Chain). - Constructor arguments, ABI-encoded.
- The exact source, including imported files and the license comment.