Skip to main content

Overview

The absolute prestate is the on-chain commitment to a specific build of kona-client. The matching preimage (a gzipped binary) is what op-challenger runs at dispute time. This guide is the minimal reproducer.
As of Upgrade 19, CANNON_KONA (game type 8) is the respected game type for permissionless fault proofs. If your chain is not yet in the public Superchain Registry, follow Generating a custom kona-client absolute prestate instead.

Prerequisites

Generate and verify the prestate

1

Check out the release tag

git clone https://github.com/ethereum-optimism/optimism.git
cd optimism
git checkout kona-node/v<VERSION>
2

Build the prestate

just reproducible-prestate-kona
The build runs in Docker and writes artifacts to rust/kona/prestate-artifacts-cannon/.
3

Read and verify the hash

jq -r .pre rust/kona/prestate-artifacts-cannon/prestate-proof.json
Match the printed hash against the cannon64-kona entry for your release tag in standard-prestates.toml. A match confirms your build environment is honest.

Configure op-challenger

Upload the hash-named file rust/kona/prestate-artifacts-cannon/0x<HASH>.bin.gz (produced by the build) to a location reachable by your op-challenger instances, then add the kona-specific env vars to your existing challenger config:
OP_CHALLENGER_TRACE_TYPE=cannon-kona,permissioned
OP_CHALLENGER_CANNON_KONA_PRESTATES_URL=<HTTP_URL_PATH_TO_PRESTATES>
The challenger appends /0x<hash>.bin.gz to *_PRESTATES_URL to resolve the right binary per dispute. Your existing OP_CHALLENGER_ROLLUP_CONFIG, OP_CHALLENGER_L2_GENESIS, and OP_CHALLENGER_GAME_FACTORY_ADDRESS continue to apply unchanged.

Next Steps