Contract Verification Tool
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Contract Verification Tool lets you verify that a deployed contract matches the expected bytecode from your source code. Enter a contract address and paste the bytecode you expect from your compiled source—the tool fetches the on-chain bytecode and performs a direct comparison. It clearly shows whether the two match exactly, partially (possible metadata differences), or not at all, along with bytecode lengths and previews. This is essential for security audits, ensuring that the contract you're interacting with is the one you intended to deploy, and for detecting potential substitution attacks or deployment errors.
HOW TO USE
Connect your EVM wallet (optional—the tool works read-only). Select the network from the dropdown. Enter the contract address (0x…) you want to verify. Paste the expected bytecode (from your compiled source) into the bytecode field—this must start with 0x. Click "verify" to fetch the on-chain bytecode and compare it against your expected bytecode. The tool displays a clear match status (MATCH, PARTIAL, or MISMATCH), shows both bytecode lengths, and provides previews of both bytecodes for manual inspection. Use the "clear" button to reset all fields. No signing or approvals required.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 via the BGWallet provider. It validates the address format and fetches the on-chain bytecode using provider.getCode(address), which returns the runtime bytecode deployed at that address. The expected bytecode is provided by the user and is validated to start with 0x. Both bytecode strings are normalized to lowercase for case-insensitive comparison. The tool then checks for an exact match; if not exact, it checks if one bytecode is contained within the other to detect potential metadata differences (e.g., compiler metadata appended during compilation). The results are displayed with a color-coded status badge, bytecode lengths, and truncated previews of both bytecodes.
WHAT IT CANNOT SEE
This tool cannot verify contracts if the source code does not match the exact compiler version and optimization settings used—the bytecode must be identical. It cannot verify contracts that use non-standard compilation patterns or external library linking that is not accounted for—the provided bytecode must be the complete runtime bytecode. It cannot prove that the bytecode was generated from the source code with cryptographic certainty beyond matching—it only compares bytes. It cannot detect if the contract was deployed from a different source that coincidentally produces the same bytecode. It cannot verify contracts that are not deployed (no on-chain bytecode). It is limited by the accuracy of the metadata and compiler settings provided by the user.
PLEASE NOTE
Works exclusively on EVM-compatible chains: Ethereum Mainnet, Goerli, Sepolia, Polygon, Arbitrum, and Optimism. Solana, Tron, Starknet, SUI, TON, Aptos, Bitcoin, Cosmos, and XRP are not supported. This is a read-only, free security tool—use it for contract auditing and due diligence, but always combine with other verification methods such as source code verification on Etherscan. A match indicates the bytecode is identical, but it does not guarantee the contract is secure or free from vulnerabilities.