Send 1 wei to an empty account under Amsterdam and tell me the gas the wallet would need.
Look forgasUsed near 204,600, with txStateGas near 183,600
Agent will likely call run_transactionWhat you can ask →
Status: Live on the public MCP. Tool:
run_transaction.
Send 1 wei to an empty account under Amsterdam and tell me the gas the wallet would need.
Look forgasUsed near 204,600, with txStateGas near 183,600
Agent will likely call run_transactionWhat you can ask →
Run a message-call or contract-creation transaction under a chosen fork and receive paid transaction gas plus receipt logs. The sender is impersonated from from — no private key.
This is the verb for wallet gas limits, contract deployment boundaries (EIP-7954), first-touch ETH transfers (EIP-8037), EIP-7708 Transfer logs on tx value, and paid txStateGas (new-slot SSTORE / first-touch). Program-gas SSTORE / SLOAD belongs on Run Bytecode.
Raw opcode / stack / precompile programs belong on Run Bytecode.
Tell the user paid gas, wallet gas limit, logs, and regular-gas / state-gas splits in plain language. Use regularGas parts when explaining small gaps between similar transfers — not JSON names like gasUsed or txStateGas unless they asked for raw output.
txRegularGas / txStateGas when presentrun_transaction
| Field | Required | Description |
|---|---|---|
from | Yes | Hex sender (impersonated) |
to | No | Hex recipient. Omit for contract creation; then data is initcode |
value | No | Wei as a decimal string (default 0) |
data | No | Calldata hex, or initcode when to is omitted |
code | No | Runtime bytecode installed at to before the tx (contract-wallet / SSTORE) |
accounts | No | BYOS prestate on this call — same shape as Run Bytecode (balance, nonce, code, storage) |
fork | No | { baseHardfork, eips[] } — default glamsterdam |
gasLimit | No | Decimal string. Default 1000000. Tool ceiling 110000000; fork validity rules still apply |
authorizationList | No | Signed EIP-7702 JSON items — Pectra+ type-4 set-code tx. Use Inspect Artifact authorization-list to validate first. |
accessList | No | EIP-2930 access list (type-2 tx). On Glamsterdam, list bytes pay the calldata floor (EIP-7981). Not combinable with authorizationList. |
Same empty-world accounts[] model as Run Bytecode: seed senders, recipients, deployed runtime code, and storage on this call. Use code on the tx when you need bytecode at to without a separate account row.
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.
| Field | Description |
|---|---|
success | Tx completed without revert or intrinsic failure |
gasUsed | Paid transaction gas (intrinsic + execution − refund) |
gasUsedScope | Always transaction |
txRegularGas | Glamsterdam only — regular-gas total |
txStateGas | Glamsterdam only — state-gas total |
regularGas | Parts that sum to txRegularGas (base, recipient, value, calldata, floorUplift, execution) |
recipientPrestate | self / existing / created before the tx — labels txStateGas, not regular gas |
returnValue | Hex return data |
error | Failure message (e.g. intrinsic gas too low), else null |
createdAddress | Successful creation only — deployed contract address |
deployedCodeSize | Successful creation only — stored runtime-code bytes |
logs / decodedLogs | Receipt logs; EIP-7708 Transfer/Burn decorations when present |
provenance | Always present — named eips[] add a compact Spec: clause on caveat |
If paid regular gas differs from what you expected, read regularGas — do not explain a regular gap with txStateGas alone.
{
"from": "0x00000000000000000000000000000000000000ee",
"to": "0x00000000000000000000000000000000000000aa",
"value": "1",
"fork": { "baseHardfork": "glamsterdam" }
}Expected: success: true, gasUsed: "204600", txStateGas: "183600". The same call on fusaka is gasUsed: "21000". With "gasLimit": "21000" Glamsterdam fails.
See Guarantees for gas ceilings. The higher transaction-only ceiling supports Glamsterdam's EIP-8037 state-gas reservoir for large deployments.