Practical overview
When it fits
Use Diffyscan when reviewing a deployment or adding a repeatable local or CI check that compares a deployed EVM contract with a pinned source revision.
Who it is for
- Smart-contract teams checking deployed contracts against an approved GitHub revision.
- Developers integrating contract drift checks into local release workflows or CI.
Documented uses
- Compare explorer-verified contract source with files at a pinned GitHub commit.
- Recompile the pinned revision and compare runtime bytecode with deployed chain code.
- Check constructor-set immutable values through remote eth_call simulation.
- Allow explicitly declared expected differences and return a non-zero exit code for unapproved differences.
Requirements & limits
The repository is public and licensed under MIT. The documented tool requires Python 3.11 or later, uv, API tokens for GitHub and a block explorer, and a target-network RPC endpoint.
- Diffyscan compares both explorer-verified source and recompiled runtime bytecode against deployed code.
- Teams can specify expected differences with granular allowed_diffs rules.
- JSON output is documented for machine-readable downstream handling.
- Bytecode reproduction depends on constructor and compiler-related inputs supplied by the explorer.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up and run a configured Diffyscan check
Install Diffyscan's documented dependencies, provide the required credentials and RPC endpoint, then invoke it with a project configuration file.
Before you start
- Python >=3.11 and <4
- uv
- A GitHub API token
- A block explorer API token
- An RPC endpoint for the target network
Steps
Clone the Diffyscan repository and change into its directory.
Run the command below to install the locked dependencies.
uv sync --lockedCopy
.env.exampleto.env, then set the API tokens and RPC URLs required by the configuration.Run the command below with the relevant configuration path.
uv run diffyscan configs///.yaml
Expected outcome
Diffyscan checks the configured deployment against source pinned to a GitHub commit and reports unapproved differences with a non-zero exit code.
Guide limitations
- Bytecode reproduction relies on explorer-provided constructor calldata, linked-library addresses, compiler settings and EVM version.
- The exact configuration values depend on the project and target network.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 9 October 2026
- Original website title
- lidofinance/diffyscan · Official homepage title · retained in its source language

