{
  "id": 4750,
  "title": "EIP-4750: EOF - Functions",
  "status": "Stagnant",
  "type": "Standards Track",
  "category": "Core",
  "summary": "This introduces proper function support to EOF contracts by allowing multiple code sections, each representing a separate function. It adds two new instructions: CALLF to call functions and RETF to return from them. Functions have defined input/output parameters and their own isolated stack, improving code organization and analysis. Dynamic jumps (JUMP/JUMPI) are completely removed in favor of static function calls, making contracts more predictable and easier to optimize. A return stack tracks function call history, and JUMPDEST becomes a simple NOP instruction since jump analysis is no longer needed.",
  "impacts": [],
  "discussion_url": "https://ethereum-magicians.org/t/eip-4750-eof-functions/8195",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4750.md",
  "canonical_url": "/latest/eips/4750.json",
  "markdown_url": "/latest/eips/4750.md",
  "citations": [
    {
      "recordId": "eip-4750",
      "artifactPath": "normalized/4750.json",
      "url": "/records/proposal/eip-4750/normalized/4750.json",
      "label": "EIP-4750: EOF - Functions",
      "snippet": "This introduces proper function support to EOF contracts by allowing multiple code sections, each representing a separate function. It adds two new instructions: CALLF to call functions and RETF to return from them. Func"
    }
  ]
}
