Run a lab block on Amsterdam with two plain 1 wei transfers — show each receipt.
Look forper-transaction receipts plus the header snapshot
Agent will likely call run_blockWhat you can ask →
Status: Live on the public MCP. Tool:
run_block.
Run a lab block on Amsterdam with two plain 1 wei transfers — show each receipt.
Look forper-transaction receipts plus the header snapshot
Agent will likely call run_blockWhat you can ask →
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 Glamsterdam / Fusaka 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_artifact (not this tool).
Tell the user per-transaction paid gas, receipts, and regular-gas deltas in plain language — not transactions[].gasUsed or header field names unless they asked for raw output.
timestamp or number the EVM can readrun_block
| Field | Required | Description |
|---|---|---|
transactions | Yes | 1–8 txs. Each has from, to, optional value / data / code / gasLimit |
header.slotNumber | No | Beacon slot (decimal). Glamsterdam 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 glamsterdam |
Same named forks as Run Bytecode: default glamsterdam; fusaka when the user asks for current-mainnet EL behavior. One run per named fork unless they ask to compare. slotNumber is rejected on Fusaka.
| 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 Glamsterdam txRegularGas / txStateGas, regularGas, recipientPrestate, logs |
regularGasDelta | When per-tx regularGas.total differs — part names and values per tx index |
error | First tx failure or a block-level catch, else null |
provenance | Always present — named eips[] add a compact Spec: clause on caveat |
On Glamsterdam, header gasUsed may track the state-gas dimension (EIP-8037). Paid tx gas lives on transactions[].gasUsed.
When two receipts disagree on paid regular gas, explain from regularGas / regularGasDelta — not from matching txStateGas.
Not in this version: BAL JSON, builder requests, historical replay.
{
"transactions": [
{
"from": "0x00000000000000000000000000000000000000ee",
"to": "0x00000000000000000000000000000000000000aa",
"value": "1"
}
],
"fork": { "baseHardfork": "glamsterdam" }
}Expected: success: true, transactions[0].gasUsed: "204600", txStateGas: "183600". The same call on fusaka is paid 21000.
Max 8 transactions. See Guarantees for gas ceilings.