{
  "id": 7819,
  "title": "EIP-7819: SETDELEGATE instruction",
  "status": "Draft",
  "type": "Standards Track",
  "category": "Core",
  "summary": "Adds a new instruction for upgradeable, lightweight contract clones via EIP-7702 delegation. This is similar to upgradable proxy contracts but enabled natively on protocol level, therfore cutting gas and complexity.",
  "impacts": [
    "Most users see unchanged behavior; some smart accounts may become cheaper and smoother, with minor upgrade-related risk managed by factories.",
    "Contract developers get a way to create upgradeable clones, reducing gas and complexity; must guard against chaining and immediate delegation changes.",
    "Smart-account wallets may benefit from cheaper verification and operations; minimal code changes expected, aside from supporting delegation-aware introspection and risk messaging.",
    "Explorers, indexers, and debuggers should recognize delegation indicators and mid-transaction updates; otherwise limited changes beyond existing EIP-7702 handling.",
    "EVM-equivalent L2s implementing this opcode mirror mainnet behavior; optional adoption otherwise. Expect routine client updates, testing, and gas schedule alignment.",
    "Node operators simply upgrade clients at fork; runtime behavior unchanged. Increased use of delegations may slightly affect tracing tools, not validation.",
    "No consensus changes expected for CL; only standard fork coordination. No new serialization, gossip, or signature rules introduced by this opcode.",
    "Must implement SETDELEGATE semantics, gas accounting, refunds, and EIP-2929 touches; ensure compatibility with EIP-7702 delegation indicators and immediate-effect code updates.",
    "Upgradeable clones without storage lookups, using EIP-7702 delegation indicators.",
    "Lower gas by moving call redirection from EVM bytecode to protocol.",
    "Smaller state footprint than proxies; delegation objects are only 23 bytes.",
    "Immediate, factory-controlled upgrades or locking, reducing complexity in account factories."
  ],
  "discussion_url": "https://ethereum-magicians.org/t/eip-7819-create-delegate/21763",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7819.md",
  "canonical_url": "/latest/eips/7819.json",
  "markdown_url": "/latest/eips/7819.md",
  "citations": [
    {
      "recordId": "eip-7819",
      "artifactPath": "normalized/7819.json",
      "url": "/records/proposal/eip-7819/normalized/7819.json",
      "label": "EIP-7819: SETDELEGATE instruction",
      "snippet": "Adds a new instruction for upgradeable, lightweight contract clones via EIP-7702 delegation. This is similar to upgradable proxy contracts but enabled natively on protocol level, therfore cutting gas and complexity."
    }
  ]
}
