OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Diffyscan

Diffyscan is a Python command-line tool that compares deployed EVM contracts with source pinned to a GitHub commit, including explorer-verified source and recompiled runtime bytecode.

Independent OpenViST project profile, based on linked sources.

Diffyscan — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

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.
Before you choose

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.

Source-based practical guide

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

  1. Clone the Diffyscan repository and change into its directory.

  2. Run the command below to install the locked dependencies.

    Documented command
    uv sync --locked
  3. Copy .env.example to .env, then set the API tokens and RPC URLs required by the configuration.

  4. Run the command below with the relevant configuration path.

    Documented command
    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.
Evidence and transparency

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