The interop debug gap
The OP Superchain interop system lets contracts on Optimism, Base, Zora, Mode, and other OP Stack chains pass messages directly. The happy path is great. The unhappy path is opaque: when a message is "stuck" — submitted on the source chain, indexed by OP-Supervisor, but not yet relayed and executed on the destination — there's no developer-facing tool to tell you which step failed and why.
The lifecycle has four stages: source-chain submit, supervisor index, safety level promotion (unsafe → safe → finalized), and destination relay+execute. A stuck message can be at any of them, and the failure mode at each stage looks different. Without a tracer you're reading raw receipts and guessing.
What superchain-trace does
Three commands, each single-shot:
trace <tx> --chain op— fetches the tx receipt, identifiesL2ToL2CrossDomainMessengerevents, walks the lifecycle, and prints where it actually isstatus <tx> --chain base— quick safety-level check (unsafe / safe / finalized)chains— list supported Superchain networks
Built for the OP Foundation Interop Mission. Single Rust binary, cargo install, no service dependencies — same conventions as the rest of the kcolbchain Arbitrum/OP toolkit.
Where it fits
superchain-trace is the OP-side companion to the Arbitrum tools we shipped this week:
- arbitrum-cli — agent-first Arbitrum CLI
- stylus-profiler — Stylus WASM binary analyzer
- superchain-trace — OP Superchain message debugger
- gas-oracle — L2 gas prediction
One Rust binary per problem; no shared service to deploy.
Reference at docs.kcolbchain.com/superchain-trace. Source: GitHub.