Skip to content

Update EIP-8130: Add delegated account creation#11751

Draft
chunter-cb wants to merge 1 commit into
ethereum:masterfrom
chunter-cb:eip-8130-delegate-create
Draft

Update EIP-8130: Add delegated account creation#11751
chunter-cb wants to merge 1 commit into
ethereum:masterfrom
chunter-cb:eip-8130-delegate-create

Conversation

@chunter-cb

@chunter-cb chunter-cb commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

JUST A DRAFT FOR DISCUSSION

Summary

Extends the EIP-8130 create entry so a new account can be created as an EIP-7702 delegation in addition to placed bytecode — without adding a new account-changes entry type.

  • The create body is a bytecode account (existing CREATE2 derivation) or a delegated account when code is exactly a 23-byte delegation indicator (0xef0100 || target). Detection keys on the full 0xef0100 prefix and 23-byte length, keeping it disjoint from EOF and from bytecode (which MUST NOT begin with 0xef, per EIP-3541).
  • Delegated accounts derive their address per EIP-7819 — a 55-byte pre-image, disjoint from CREATE2's 85-byte pre-image. target and owners_commitment are bound into the salt to prevent front-running.
  • On create: the indicator is written, the nonce is bumped 0 -> 1 (EIP-7819 step 9), and the implicit EOA owner slot is set to REVOKED_VERIFIER (a 7819-derived address has no controlling key).
  • Delegation-update authorization now depends on the implicit EOA slot: the EOA owner when present (portable to EIP-7702), or any CONFIG-scoped owner when the slot is REVOKED_VERIFIER (keyless delegated accounts).
  • Gas: delegated accounts charge 25,000 (EIP-7819 EMPTY_ACCOUNT_COST) instead of the bytecode 32,000 + per-byte deposit.
  • A single rationale paragraph under "Why Delegation via Account Changes?" covers the unified create model and the EOA symmetry; spec sections stay mechanics-only.

This account type is controlled by the 8130 Account Configuration Contract, and the 8130 transaction path can upgrade its delegation via the top-level delegation entry.

Notes

  • Draft; references EIP-7819 (Draft) as a soft dependency (linked, not in requires:), consistent with how EIP-8130 references other proposals.
  • Based on master; independent of the open owner-policies PR (both touch the Create entry, so whichever merges second will reconcile that overlap).

Extends the create entry so an account can be created as an EIP-7702
delegation in addition to placed bytecode, without a new entry type:

- The create body is a bytecode account (existing CREATE2 derivation) or
  a delegated account when `code` is exactly a 23-byte delegation
  indicator (`0xef0100 || target`). Detection is on the full `0xef0100`
  prefix and 23-byte length, keeping it disjoint from EOF and from
  bytecode (which MUST NOT begin with `0xef`, per EIP-3541).
- Delegated accounts derive their address per EIP-7819
  (`keccak256(0xef0100 || ACCOUNT_CONFIG_ADDRESS || keccak256(user_salt
  || target || owners_commitment))[12:]`), a 55-byte pre-image disjoint
  from CREATE2's 85-byte pre-image. `target` and `owners_commitment` are
  bound into the salt to prevent front-running.
- On create, the delegation indicator is written, the nonce is bumped
  0->1 (EIP-7819 step 9), and the implicit EOA owner slot is set to
  REVOKED_VERIFIER since a 7819-derived address has no controlling key.
- Delegation-update authorization now depends on the implicit EOA slot:
  EOA owner when present (portable to EIP-7702), or any CONFIG-scoped
  owner when the slot is REVOKED_VERIFIER (keyless delegated accounts).
- Gas: delegated accounts charge 25,000 (EIP-7819 EMPTY_ACCOUNT_COST)
  rather than the 32,000 + per-byte bytecode deposit.
- Single rationale paragraph under "Why Delegation via Account Changes?"
  covers the unified create model and EOA symmetry.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added c-update Modifies an existing proposal s-draft This EIP is a Draft t-core labels Jun 1, 2026
@eth-bot

eth-bot commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

✅ All reviewers have approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c-update Modifies an existing proposal s-draft This EIP is a Draft t-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants