EIP-7702 — Set EOA account code for one transaction
Status: Ready for the public MCP (not launched). Canonical metadata lives in website
eip-7702/canonical.ts.
What became possible
How can an EOA run contract code for a single transaction — and what must be signed beforehand? Prague introduces type-4 transactions with an authorization list. Each signed authorization lets an authority EOA point at delegate contract code for one transaction.
Use run_transaction on prague with authorizationList (signed JSON items). Prefund the delegate implementation in accounts[]. The sponsor is impersonated from from; to is the authority EOA. Compare cancun (7702 inactive — engine rejects authorizationList) vs prague.
Validate signatures offline with inspect kind authorization-list before executing.
What the server does
| Step | Action | Purpose |
|---|---|---|
| 1 | Discover support | Confirm 7702 catalog entry; shapes include transaction |
| 2 | Inspect (optional) | authorization-list — recover authority, signing digest |
| 3 | Run transaction | Prague + authorizationList; read returnValue / gas |
{
"from": "0x0000000000000000000000000000000000000ee",
"to": "0x<authority-eoa>",
"fork": { "baseHardfork": "prague" },
"authorizationList": [
{
"chainId": "0x00",
"address": "0x<delegate-contract>",
"nonce": "0x00",
"yParity": "0x…",
"r": "0x…",
"s": "0x…"
}
],
"accounts": [
{
"address": "0x<delegate-contract>",
"code": "60426000526001601ff3"
}
]
}Fork caveat
Run the same payload twice — cancun then prague — to see activation. Delegation does not persist after the transaction; this lab does not replay mainnet history.
Twins and spec
| Link | |
|---|---|
| Canonical spec | EIP-7702 |
| Coverage index | Coverage |
Changelog
- 2026-03-26