# Ethproof Killers Test Suite – Overview & Format Guide *Latest version available [here](https://drive.google.com/file/d/1UaAk498vh0pLZy27zo1uziOOUxAkLstG/view?usp=sharing). The suite will soon be published under the official ­[execution-spec-tests releases](https://github.com/ethereum/execution-spec-tests/releases).* ## Goal Ethproof Killers tests provide standardized, self-contained fixtures describing worst-case Ethereum execution scenarios for zk-VMs. Because each scenario is captured in a single JSON file, we can: - allow each zkVM to run each test at their own pace and without live long-running devnets - be certain every other zkVM is exercising the same scenario - integrate the fixtures directly into CI pipelines or zk-proof circuits. Future releases will also include a **stateless client guest program**, giving RISCV-based zk-VMs a turnkey runner for the tests. ## File Structure Each JSON file represents **one test scenario** and may list **one or more configurations** (the current version ships one configuration per file). Below is a walk-through using `test_keccak.json`. | Key | Purpose | | --- | --- | | **`test_worst_keccak[fork_Cancun-blockchain_test-gas_limit_36000000]`** | Full pytest-style name. Useful as a human-readable label; you do *not* need to parse it. | | **`network`** | Target fork—e.g. `"Cancun"`. | | **`genesisBlockHeader`** | Canonical header for the genesis block used in the scenario. Fields match standard EL genesis fields. The RLP-encoded form is duplicated under **`genesisRLP`** for convenience. | | **`pre`** | Account/storage state that yields the `stateRoot` in the genesis header. | | **`blocks`** | Ordered list of blocks to execute **after** genesis. *All* current scenarios include just **one** block, but future suites may chain several. Non-final blocks are “setup” blocks; only the **last** block triggers the worst-case computation.  Each item contains a **`blockHeader`** and a list of **`transactions`** to be executed. | ## Running the Tests The format is identical to the Ethereum Execution-Layer (EL) tests, so every EL client already has implemented how to: 1. load the JSON fixture, 2. instantiate a chain from the supplied genesis data, and 3. execute the block sequence. For hands-on instructions, see the docs page [Executing Tests on Local Networks or Hive](https://eest.ethereum.org/main/executing_tests/#running-tests-on-a-hive-single-client-local-network). You’re also free to create your own infrastructure, but it shouldn’t be needed apart from wirings. A forthcoming release will bundle a **guest program** that consumes the JSON directly, so zk-VM teams can focus solely on proving that guest.