Skip to content

Back to the catalog

EIP Draft: Permanent EOA Delegation Opt-Out (disable EIP-7702)
ethereum-magicians.orgthread

EIP Draft: Permanent EOA Delegation Opt-Out (disable EIP-7702)

Discussion thread for a draft Core EIP that lets an Ethereum EOA permanently disable EIP-7702 delegation. A type-4 set-code transaction with an empty authorization list, destination equal to sender and zero value installs the 0xef0200 marker for 33500 gas. Later authorizations, including clearing to the zero address, are skipped. It does not protect against private-key compromise. Open questions cover the prefix, a dedicated transaction type, gas pricing, and EIP-8151 interaction.

TL;DR Proposes an Ethereum EIP letting an EOA permanently opt out of EIP-7702 delegation via a constrained empty-list set-code transaction.
Document

What it is

A draft Core EIP on Ethereum Magicians that lets an EOA permanently disable EIP-7702 delegation. The account keeps its address and can still send ordinary transactions. The stated audience is institutional wallets, exchange hot wallets and treasuries, whose operational controls may assume delegated execution is unavailable.

How it works

The opt-out is a type-4 (set-code) transaction with an empty authorization list, destination equal to sender, value 0, empty data and an empty access list. This form is invalid today, and every other empty-list form stays invalid. The transaction sets the sender's code to the provisional marker 0xef0200 (exact 3-byte match), charges a fixed 33500 gas (21000 + 12500) and runs no EVM code.

Three protocol changes follow from the marker:

  • The EIP-3607 exception is extended so an account with exactly this code can still originate transactions.
  • EIP-7702 authorizations for a marked authority fail the code-eligibility check and are skipped. This includes an authorization that would clear delegation to the zero address.
  • Calls to a marked account run as empty code, but EXTCODESIZE, EXTCODECOPY and EXTCODEHASH return the raw marker.

Preconditions / Affected

Anyone who classifies accounts as EOAs by checking for empty code is affected. A marked account has non-empty code but still sends transactions, so such checks would misclassify it. The thread lists this as an open interaction question for contracts and wallets, alongside the interaction with EIP-8151. Nothing has shipped: this is a draft under discussion.

Caveats

  • The opt-out does not protect against private-key compromise. A key holder can still sign ordinary transactions and move funds.
  • The prefix is unsettled. EIP-8141's rationale discusses 0xef02 for future key aliases, and EIP-7851 and EIP-8164 use adjacent 0xef0101 formats.
  • The author asks whether a dedicated transaction type would be better than reusing the constrained empty-list type-4 form.
  • The 33500 gas figure awaits benchmarks.
  • The thread gives no timeline, client implementation status or test vectors.

Technologies named here

  • Ethereum
  • Ethereum externally owned accounts (EOAs) with EIP-7702 delegation
  • Institutional wallets, exchange hot wallets and treasuries (named as accounts that may not need delegated execution)

Standards and laws named here

  • EIP-3607
  • EIP-7702
  • EIP-7851
  • EIP-8141
  • EIP-8151
  • EIP-8164

Techniques named here

  • EIP-7702 delegation opt-out via set-code transaction
  • Non-executable account-code marker (0xef0200)

Concepts named here

  • EIP-3607 exception
  • EIP-7702 delegation
  • Marked-account code semantics
  • Open questions in the draft
  • Permanent EOA delegation opt-out
  • Private-key compromise limit