{
  "id": 4200,
  "title": "EIP-4200: EOF - Static relative jumps",
  "status": "Stagnant",
  "type": "Standards Track",
  "category": "Core",
  "summary": "This introduces three new jump instructions (RJUMP, RJUMPI, and RJUMPV) for EOF contracts that use relative addressing instead of absolute addressing. These instructions are more gas-efficient than traditional JUMP/JUMPI instructions, don't require JUMPDEST markers, and make code analysis easier. RJUMP does unconditional jumps, RJUMPI does conditional jumps, and RJUMPV provides jump tables for switch-case scenarios. The relative addressing means code can be moved around without breaking, and the static nature allows for better optimization and validation at deployment time.",
  "impacts": [],
  "discussion_url": "https://ethereum-magicians.org/t/eip-4200-static-relative-jumps/7108",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4200.md",
  "canonical_url": "/latest/eips/4200.json",
  "markdown_url": "/latest/eips/4200.md",
  "citations": [
    {
      "recordId": "eip-4200",
      "artifactPath": "normalized/4200.json",
      "url": "/records/proposal/eip-4200/normalized/4200.json",
      "label": "EIP-4200: EOF - Static relative jumps",
      "snippet": "This introduces three new jump instructions (RJUMP, RJUMPI, and RJUMPV) for EOF contracts that use relative addressing instead of absolute addressing. These instructions are more gas-efficient than traditional JUMP/JUMPI"
    }
  ]
}
