Skip to content
Alchemy Logo

debug_executePayload

POST
/{apiKey}
CUs40Throughput CUs1000

Re-executes a payload on top of the state at parent_block_hash and returns the resulting execution witness. The witness comprises the preimages of every hashed trie node, contract code, and unhashed account/storage key that was required during execution, plus any block headers referenced by the BLOCKHASH opcode. Together they are the minimum data needed to prove that the payload executes correctly against the parent state, without access to a full node.

This method is used by fault-proof provers and stateless clients on OP Stack chains. On Base it is served from the historical proofs execution extension (ExEx); the currently indexed block range can be queried via debug_proofsSyncStatus.

Path Parameters

stringrequireddefaults to docs-demo

For higher throughput, create your own API key

Request

stringformat: "^0x[0-9a-f]{64}$"required

The 32-byte hash of the parent block. The payload is executed on top of the post-state of this parent.

objectrequired

The Optimism-style payload attributes describing the block to re-execute on top of the parent. The base Engine API PayloadAttributes fields (timestamp, prevRandao, suggestedFeeRecipient, withdrawals, parentBeaconBlockRoot) are flattened onto this object; the rollup-specific fields (transactions, noTxPool, gasLimit, eip1559Params, minBaseFee) are siblings.

Responses

200

The execution witness of the payload. Contains hashed-trie-node preimages, contract-code preimages, unhashed key preimages, and any block headers required for stateless verification.

Errors

-32602Invalid params. Common causes include a missing or malformed `parent_block_hash`, or missing/mistyped payload attribute fields. Note that after the Jovian hardfork activates on the chain, `minBaseFee` is required; before then it must be omitted.
-32603Internal error. Examples include `no header found for Hash(<parent hash>)` when the parent block is not indexed by the historical proofs store (see `debug_proofsSyncStatus` for the current coverage window), and execution failures while producing the witness.
Was this page helpful?