EIP-7708 — ETH transfers emit a log
Status: Runnable locally (stdio v0.1, self-hosted). Public MCP not launched yet — use the website exploration today.
What became possible
When does native ETH show up as a Transfer log — and when does it stay invisible to log filters? EIP-7708 emits synthetic ERC-20-compatible Transfer logs from the system address for nonzero ETH moves (tx value, CALL, CREATE/CREATE2, SELFDESTRUCT).
The MCP server runs caller-supplied bytecode or a value-bearing messageCall and returns logs plus decodedLogs (EIP-7708 Transfer/Burn decorations when present). Compare Osaka vs Amsterdam on the same program — preview emits Transfer logs; baseline stays silent.
What you can ask your agent
Connect the MCP server, then try prompts like:
- “Run a plain 1 wei transfer on Amsterdam — decode the EIP-7708 Transfer log in the result.”
- “Same messageCall on Osaka vs Amsterdam — which decoded Transfer logs differ?”
- “My contract wallet forwards ETH via CALL — show me the Transfer log fields (from, to, value).”
- “Why is there no Transfer log when the inner CALL reverts?”
These are inspiration prompts — curiosity, understanding, or builder checks.
What the server does
| Step | Action | Purpose |
|---|---|---|
| 1 | Discover support | Confirm 7708 catalog entry; read comparison forks |
| 2 | Run bytecode | Execute on amsterdam or osaka; read logs / decodedLogs |
Use messageCall for plain ETH moves without wrapper bytecode:
{
"messageCall": {
"caller": "0x00000000000000000000000000000000000000ee",
"to": "0x00000000000000000000000000000000000000aa",
"value": "1"
},
"fork": { "baseHardfork": "amsterdam" }
}Optional code on messageCall installs runtime bytecode at to before the call (contract-wallet style scenarios).
Fork caveat
Run the same program twice — osaka (baseline), then amsterdam (preview) — and compare decodedLogs. EIP-7708 Transfer decorations appear only on Amsterdam for successful nonzero value moves. Do not infer Transfer events from opcode traces alone.
Limits today: tx-level value and burn logs need a future block/tx simulate path. Message-call and in-bytecode CALL paths are supported.
Twins and spec
| Link | |
|---|---|
| Website exploration (interactive textbook) | EIP-7708 on feelyourprotocol.org |
| Canonical spec | EIP-7708 |
| Coverage index | Coverage |
Changelog
- v0.22026-09-01Runnable — simulate returns logs/decodedLogs; messageCall for plain ETH moves; Amsterdam vs Osaka comparison.
- v0.12026-09-01Planned catalogue page with scenario-aligned prompts and twin link.