Compiler Settings Matcher for Verification
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
Compiler Settings Matcher for Verification is a developer-focused tool that analyzes deployed contract bytecode to identify the compiler settings used during deployment. It fetches the contract bytecode via eth_getCode, scans for Solidity metadata markers, and attempts to determine the compiler version, optimizer status, and optimization runs. The tool accepts optional user-provided settings as hints, compares them against the detected values, and outputs matched settings with a confidence score. It also parses constructor arguments and library addresses to provide comprehensive verification recommendations. This enables developers to quickly determine the correct compiler settings needed for successful contract verification on block explorers, reducing trial-and-error when the original build configuration is unknown.
HOW TO USE
Connect your wallet to the target EVM chain. Enter the contract address into the input field. Optionally provide the compiler version, optimization setting, optimization runs, constructor arguments, and library addresses if known — these will be compared against the detected settings. Click "Match compiler settings" to analyze the bytecode. The tool will display the contract summary, detected settings with confidence level, user-provided settings, and a list of recommendations for verification. The confidence level indicates how reliably the settings could be determined from the bytecode.
TECHNICAL NOTE: BYTECODE METADATA EXTRACTION
The tool extracts compiler metadata from the deployed bytecode by locating the Solidity metadata CBOR marker (0xa264 or 0xa165) embedded near the end of the contract bytecode. When metadata is present, the tool parses the metadata to determine the compiler version and optimization settings. For contracts without metadata (compiled with metadata disabled), the tool falls back to heuristic analysis based on bytecode patterns and size, providing a lower confidence match. The tool also validates that the provided user settings match the detected settings and highlights any discrepancies. Library addresses are parsed and displayed alongside the settings, as they are required for verification of contracts with linked libraries.
WHAT IT CANNOT SEE
The tool cannot determine compiler settings from unverified contracts without source code or with minimal bytecode that lacks metadata. It cannot automatically detect optimizer settings from bytecode when metadata is not present. It cannot validate that the provided settings match the actual deployment; it only provides suggestions based on bytecode analysis. It cannot handle contracts compiled with non-standard compilers or custom toolchains. The tool is limited by the accuracy of metadata extraction from bytecode, which can be incomplete or malformed. It cannot detect settings for contracts deployed without metadata, such as contracts compiled with metadata disabled or via custom build pipelines. It cannot verify settings on non-EVM chains. It cannot guarantee that matched settings will result in successful verification on a block explorer.
PLEASE NOTE
This tool is designed exclusively for EVM-compatible chains (Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche C-Chain, etc.). It does not support non-EVM blockchains. The tool is read-only and does not submit any transactions. The detected settings are estimates based on bytecode analysis; always verify the output against your actual build configuration before submitting to a block explorer. The tool provides no warranty that the matched settings will result in successful verification; users are responsible for ensuring all details are correct.