Overview
cannon has two halves that must behave identically:- Onchain
MIPS64.sol— a Solidity implementation of big-endian 64-bit MIPS (MIPS64r1) instruction execution, used to verify a single disputed instruction on L1. - Offchain
mipsevm— an instrumented emulator of the same instruction set that runs the full program and produces the witness data needed to repeat any one step onchain.
Get started
- Cannon usage — the in-repo README walks through building cannon, loading a kona-client ELF into an initial VM state, and running the emulator.
How-tos
- Generating absolute prestate and preimage files — build and verify the cannon prestate of kona-client that op-challenger runs at dispute time.
- Generating a custom kona-client absolute prestate — the same, for chains not yet in the public Superchain Registry.
Configuration & flags reference
- cannon has no configuration reference page on this site yet; it is
configured entirely through CLI flags, documented by
cannon --helpand the in-repo README.
Releases
- cannon release tags on GitHub — cannon does not have a page under Releases yet.
Source & spec links
- Source:
cannon/in the Optimism monorepo; the onchain contracts live inpackages/contracts-bedrock/src/cannon. - Cannon overview docs — in-repo documentation of the onchain/offchain split and the witness data (packed state, memory proofs, preimage data).
- Cannon fault proof VM specification — the normative definition of the VM.