{
  "id": 7880,
  "title": "EIP-7880: EOF - EXTCODEADDRESS instruction",
  "status": "Review",
  "type": "Standards Track",
  "category": "Core",
  "summary": "This adds a new EXTCODEADDRESS instruction to EOF contracts that helps them work with EIP-7702 delegation accounts without breaking EOF's no-code-introspection rule. The problem it solves is that EOF removes the ability to read raw contract code, but contracts still need to know when an account is delegating execution to another address. This instruction takes an address and returns the actual address that will execute the code - for regular accounts it returns the same address, but for delegated accounts it returns the address they're delegating to. This enables important use cases like managed proxy contracts ensuring they don't delegate to unsafe addresses, sponsorship contracts verifying delegation hasn't changed during a transaction, and security-conscious contracts that only accept specific delegation targets.",
  "impacts": [],
  "discussion_url": "https://ethereum-magicians.org/t/eip-7880-eof-extcodeaddress-instruction/22845",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7880.md",
  "canonical_url": "/latest/eips/7880.json",
  "markdown_url": "/latest/eips/7880.md",
  "citations": [
    {
      "recordId": "eip-7880",
      "artifactPath": "normalized/7880.json",
      "url": "/records/proposal/eip-7880/normalized/7880.json",
      "label": "EIP-7880: EOF - EXTCODEADDRESS instruction",
      "snippet": "This adds a new EXTCODEADDRESS instruction to EOF contracts that helps them work with EIP-7702 delegation accounts without breaking EOF's no-code-introspection rule. The problem it solves is that EOF removes the ability "
    }
  ]
}
