Skip to content
Security
Command

/verify-deploy

Verify deployed bytecode matches the source you have, with correct constructor args.

From plugin
rugproof
1145 skills23 agents45 commands4 hooks
> /plugin marketplace add omermaksutii/RugProof
> /plugin install rugproof@rugproof

Command definition

verify-deploy.md
description: Verify deployed bytecode matches the source you have, with correct constructor args.
argument-hint: "<chain> <address>"
allowed-tools: Read, Bash, Agent, mcp__block-explorer__*, mcp__forge-runner__*

/verify-deploy — does the deployed code match the source?

Compare deployed bytecode at `<chain>:<address>` with the local source + constructor args.

Procedure

Step 1 — Fetch deployed runtime bytecode

mcp__block-explorer__get_runtime_code(chain=<chain>, address=<addr>)

Step 2 — Compile local source

mcp__forge-runner__build()

Pull the runtime bytecode for the matching contract.

Step 3 — Strip metadata

Solidity appends a CBOR metadata blob at the end of the runtime bytecode containing the IPFS / Swarm hash of the source. Strip it for comparison:

Detect: bytecode ends with `0x...a26469706673...` (CBOR)
Length: last 53 bytes

Step 4 — Compare

Byte-wise compare the stripped runtime code.

Step 5 — Decode constructor args

mcp__block-explorer__get_constructor_args(chain=<chain>, address=<addr>)

Compare with the expected args from your deploy script.

Step 6 — Output

Three cases:

**Match:**

✓ Deployed bytecode matches local source.
  Constructor args: match.
  Metadata hash:    QmXabc...  (matches IPFS-pinned source)

**Mismatch:**

✗ Bytecode mismatch.
  Local compiled:    32K bytes
  Deployed runtime:  31.8K bytes
  Diff:              5 byte regions differ (likely compiler settings)

  Likely cause: optimizer runs (200 vs 999999), Solidity version, library linking.

**Metadata-only difference:**

⚠ Runtime bytecode matches; metadata hash differs.
  This is normal if the local source is at a different commit than the deployment.
  Consider this a soft match.

Notes

  • Useful before bug bounty submissions: prove you've audited *the actual deployed code*, not a different commit.
  • For proxies, run against the *implementation*, not the proxy.
  • For multi-contract systems, run for each.
Read more
@omermaksutii
Ships withrugproof

Rugproof your code before someone else does. 🌐 Live site: omermaksutii.github.io/RugProof 📦 Latest: v1.0.0 — 45 commands · 23 agents · 45 skills · 13 MCP servers · tested, offline-first, with rule packs, a benchmark, non-EVM coverage, and post-deploy

1152 skills23 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
11
Star history of omermaksutii/RugProof on GitHub, a chart by star-history.com

Other commands on rugproof.

audit-deep

audit-deep

Command

Deep audit — same as /audit but spawns more parallel subagents, runs multi-pass review, and chases exploit chains across files.

@omermaksutii@omermaksutiiInstall Command
audit-deps

audit-deps

Command

Audit third-party dependencies — resolve installed versions, cross-reference known-vulnerable releases, and flag vendored code…

@omermaksutii@omermaksutiiInstall Command
audit-diff

audit-diff

Command

Diff two Rugproof audit reports (before vs after) to track regressions — what's new, what's fixed, and whether the grade moved.

@omermaksutii@omermaksutiiInstall Command
audit-history

audit-history

Command

Pull past public audits (Code4rena, Sherlock, Spearbit, etc.) for a deployed contract or known protocol.

@omermaksutii@omermaksutiiInstall Command
audit-live

audit-live

Command

Audit a deployed contract on a live chain. Pulls verified source from the block explorer, optionally forks the chain for…

@omermaksutii@omermaksutiiInstall Command

More commands from other plugins.

deslop-reborn

deslop-reborn

Command

One iteration of the IronClaw Reborn de-slop loop — take ONE Reborn crate, fan out parallel review sub-agents (thermo-nuclear…

@nearai@nearaiInstall Command
audit

audit

Command

Audit a file, directory, or whole repo for insecure default configuration: fallback secrets, default credentials, fail-open…

@trailofbits@trailofbitsInstall Command
arsenal

arsenal

Command

Show which external bug-bounty tools are installed on this machine and print install hints for the missing ones. Curated from…

@awarexone@awarexoneInstall Command