Skip to content

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

StepActionPurpose
1Discover supportConfirm 7702 catalog entry; shapes include transaction
2Inspect (optional)authorization-list — recover authority, signing digest
3Run transactionPrague + authorizationList; read returnValue / gas
json
{
  "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 twicecancun then prague — to see activation. Delegation does not persist after the transaction; this lab does not replay mainnet history.

Twins and spec

Link
Canonical specEIP-7702
Coverage indexCoverage

Changelog

EIP-7702 MCP Catalogue Changelog
  1. 2026-03-26

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