Run Block
Status: Implemented — ships on the public MCP at launch. MCP tool:
run_block. Public endpoint not live.
Purpose
Run 1–8 impersonated transactions as one lab block and receive a header snapshot plus per-tx receipts. Senders are impersonated from each from — no private key.
This is the verb for a chosen beacon slot (header.slotNumber / EIP-7843), several txs in one block, a lab number / timestamp, or a generic Amsterdam / Osaka lab block with no EIP named.
A single paid transfer still belongs on Run Transaction. Raw opcode / stack programs belong on Run Bytecode. Block-level access list JSON belongs on generate (not this tool).
When to use
- “What does SLOTNUM push if the header slot is 42?”
- Two transfers in one Amsterdam block — receipts in order
- Lab header
timestampornumberthe EVM can read
MCP tool name
run_block
Inputs
| Field | Required | Description |
|---|---|---|
transactions | Yes | 1–8 txs. Each has from, to, optional value / data / code / gasLimit |
header.slotNumber | No | Beacon slot (decimal). Amsterdam only |
header.number | No | Block number (decimal). Default 1 |
header.timestamp | No | Unix timestamp (decimal). Default 1 |
accounts | No | Extra accounts to prefund |
fork | No | { baseHardfork, eips[] } — default amsterdam |
Fork notes
Same named forks as Run Bytecode: default amsterdam, optional osaka for a mainnet baseline compare. slotNumber is rejected on Osaka.
Outputs
| Field | Description |
|---|---|
success | Every tx completed without revert or intrinsic failure |
gasUsed | Header gasUsed after lab generate (gasUsedScope: block) |
header | number, timestamp, gasUsed, optional slotNumber |
transactions[] | Per-tx paid gas, optional Amsterdam txRegularGas / txStateGas, logs |
error | First tx failure or a block-level catch, else null |
provenance | Always present |
On Amsterdam, header gasUsed may track the state-gas dimension (EIP-8037). Paid tx gas lives on transactions[].gasUsed.
Not in this version: BAL JSON, builder requests, historical replay.
Example — first-touch 1 wei (Amsterdam)
{
"transactions": [
{
"from": "0x00000000000000000000000000000000000000ee",
"to": "0x00000000000000000000000000000000000000aa",
"value": "1"
}
],
"fork": { "baseHardfork": "amsterdam" }
}Expected: success: true, transactions[0].gasUsed: "204600", txStateGas: "183600". The same call on osaka is paid 21000.
JSON schema
Limits
Max 8 transactions. See Guarantees for gas ceilings.
Changelog
- v0.22026-09-16Generic Amsterdam / Osaka lab block is a first-class when-to-use.