Multi-Compiler Output Diff 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
Multi-Compiler Output Diff Tool compares compiler outputs—ABI, bytecode, and metadata—from different Solidity compiler versions or settings. You provide two compiler outputs as JSON objects (each containing ABI, bytecode, and metadata), and the tool generates a detailed diff report showing what changed. It identifies differences in the ABI, bytecode, and metadata, highlighting added, removed, or changed elements. The report includes a summary of differences and a detailed preview of each diff. This is essential for developers upgrading compiler versions, evaluating the impact of optimizer changes, debugging bytecode size increases, or understanding how compiler upgrades affect contract artifacts.
HOW TO USE
Enter labels for the two compiler versions (e.g., "0.8.20" and "0.8.25"). Paste the compiler outputs as JSON objects—each should contain `abi`, `bytecode`, and `metadata` fields (the tool can also accept just ABI, bytecode, or metadata alone). Select the diff focus: "All Differences", "ABI Only", "Bytecode Only", or "Metadata Only". Click "Generate Diff." The tool parses the JSON, compares the selected sections, and displays the results. Each section shows whether it's identical or changed, with a preview of the differences. A summary shows how many differences were found. If changes are detected, a full diff report is available for copying.
THE REAL MECHANISM
The tool uses a pure JavaScript comparison engine that operates entirely client-side. It parses the JSON outputs and extracts the relevant sections based on the diff focus. For ABI and metadata, it performs a JSON string comparison with formatting to show structural differences. For bytecode, it compares the hex strings and reports length differences and position-specific changes. The tool detects added, removed, or changed elements and generates a human-readable diff report. It calculates the number of differences and displays a summary. All processing is done in the browser—no data is sent to external servers.
WHAT IT CANNOT SEE
This tool cannot automatically detect differences in contract behavior from bytecode changes—it only reports structural differences. It cannot generate diffs for non-EVM compilers or for languages other than Solidity. It cannot validate which differences are significant—you must evaluate the impact of each change. It cannot determine the compiler version used without user input—you must provide the labels. It cannot generate diffs for non-Solidity compilers. The tool does not compile contracts or verify the correctness of the outputs—it compares what you provide.
PLEASE NOTE
Multi-Compiler Output Diff Tool works for any EVM-related compiler outputs and does not require a blockchain connection to function, though the network selector is provided for context. It is a comparison tool for developers, not an execution tool. It reads data only and does not send any information to external servers. The tool is free to use and does not require authentication. For best results, ensure both outputs are in the same format and include the fields you want to compare.