Skip to content

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 timestamp or number the EVM can read

MCP tool name

run_block

Inputs

FieldRequiredDescription
transactionsYes1–8 txs. Each has from, to, optional value / data / code / gasLimit
header.slotNumberNoBeacon slot (decimal). Amsterdam only
header.numberNoBlock number (decimal). Default 1
header.timestampNoUnix timestamp (decimal). Default 1
accountsNoExtra accounts to prefund
forkNo{ 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

FieldDescription
successEvery tx completed without revert or intrinsic failure
gasUsedHeader gasUsed after lab generate (gasUsedScope: block)
headernumber, timestamp, gasUsed, optional slotNumber
transactions[]Per-tx paid gas, optional Amsterdam txRegularGas / txStateGas, logs
errorFirst tx failure or a block-level catch, else null
provenanceAlways 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)

json
{
  "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

run_block.input.json

Limits

Max 8 transactions. See Guarantees for gas ceilings.

Changelog

Run Block Changelog
  1. v0.22026-09-16Generic Amsterdam / Osaka lab block is a first-class when-to-use.

Use = end-user reference. Internals = architecture and operations. Each section carries its own micro-changelog.