Skip to main content
Sigvex

Upgrade Semantic Diff

A fast bytecode-level answer to 'what actually changed between these two versions?' — a categorized change list and a before/after profile of the security-relevant surface.

Upgrade Semantic Diff compares two contract versions at the bytecode level and tells you what changed. It’s the quick screen before a full upgrade simulation — a list of the semantic differences plus a before/after profile of the parts that matter for security.

Why it exists

Before approving an upgrade, the first question is simply “what changed?” — and running a full decompile or re-analysis to answer it is overkill. This page is the fast path: it diffs the two bytecodes and surfaces the categories of change worth a closer look, so you know where to spend the deeper review.

Who uses it

  • Auditor — screens a proposed upgrade before committing to the full simulator run.
  • Researcher — diffs two versions of a contract to understand what moved.

How to open it

  1. Sidebar → Simulation → Upgrade Diff.
  2. Direct URL — /upgrade-diff.

Running a diff

Pick a source contract from the workspace — its stored bytecode loads automatically — and paste the new runtime bytecode as the target, then Run semantic diff. Try Me loads a sample so you can see the page work without real inputs. The result is a changes list of the detected semantic differences and a profile summary giving before/after counts for the security-relevant surface: authorization slots, event topics, delegatecall, tx.origin, and reverts.

Limits

  • Requires a signed-in account, and diffs EVM bytecode.
  • This is a bytecode-level diff — storage-layout and selector checks live in the Upgrade Simulator. The page describes what it does and doesn’t catch inline; read that before interpreting a result. An all-zeros profile means no categorized changes, which is a valid result.