{
  "id": 7698,
  "title": "EIP-7698: EOF - Creation transaction",
  "status": "Stagnant",
  "type": "Standards Track",
  "category": "Core",
  "summary": "This enables deploying EOF contracts using regular creation transactions (transactions with empty 'to' field). Since legacy CREATE and CREATE2 instructions cannot deploy EOF code, creation transactions are the only way to get the first EOF contracts on-chain. The transaction data contains an EOF initcontainer followed by calldata for constructor arguments. This approach allows existing deployment tooling to work without modification - developers can deploy EOF contracts the same way they deploy legacy contracts, just by concatenating constructor arguments with the initcontainer. The execution ends with a RETURNCODE instruction that specifies which subcontainer becomes the deployed contract.",
  "impacts": [],
  "discussion_url": "https://ethereum-magicians.org/t/eip-7698-eof-creation-transaction/19784",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7698.md",
  "canonical_url": "/latest/eips/7698.json",
  "markdown_url": "/latest/eips/7698.md",
  "citations": [
    {
      "recordId": "eip-7698",
      "artifactPath": "normalized/7698.json",
      "url": "/records/proposal/eip-7698/normalized/7698.json",
      "label": "EIP-7698: EOF - Creation transaction",
      "snippet": "This enables deploying EOF contracts using regular creation transactions (transactions with empty 'to' field). Since legacy CREATE and CREATE2 instructions cannot deploy EOF code, creation transactions are the only way t"
    }
  ]
}
