{
  "id": 6404,
  "title": "EIP-6404: SSZ transactions",
  "status": "Draft",
  "type": "Standards Track",
  "category": "Core",
  "summary": "Moves Ethereum transactions from RLP to SSZ. This changes serialization and the block header's transactions_root, enabling more efficient proofs and future flexibility. Users should see no behavioral change.",
  "impacts": [
    "No visible change; sending and receiving transactions remains the same. Migration affects encoding and proofs internally.",
    "Apps using transaction inclusion proofs or transactions_root must migrate from MPT-based roots to the SSZ transactions_root.",
    "Wallet libraries may need SSZ encoding and signing support. Original RLP sig_hash and tx_hash remain recoverable for compatibility.",
    "Indexers/explorers using MPT transaction proofs or header roots must adopt SSZ roots and update verification pipelines.",
    "Systems relying on mainnet transaction inclusion proofs should switch from MPT proofs to SSZ-based roots for compatibility.",
    "Operators must run clients supporting SSZ transactions, updated header commitments, and Engine API/ExecutionPayload changes.",
    "Implement ExecutionPayload and header changes using SSZ transactions_root and adjust Engine API; moderate serialization and hashing complexity.",
    "Add SSZ serialization/validation for all transactions, update header commitments and Engine API; higher implementation complexity.",
    "Efficient transaction inclusion proofs via SSZ roots",
    "Better partial hashing and verification of data",
    "Aligns execution and consensus around SSZ",
    "Improves forward compatibility for transaction changes"
  ],
  "discussion_url": "https://ethereum-magicians.org/t/eip-6404-ssz-transactions/12783",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6404.md",
  "canonical_url": "/latest/eips/6404.json",
  "markdown_url": "/latest/eips/6404.md",
  "citations": [
    {
      "recordId": "eip-6404",
      "artifactPath": "normalized/6404.json",
      "url": "/records/proposal/eip-6404/normalized/6404.json",
      "label": "EIP-6404: SSZ transactions",
      "snippet": "Moves Ethereum transactions from RLP to SSZ. This changes serialization and the block header's transactions_root, enabling more efficient proofs and future flexibility. Users should see no behavioral change."
    }
  ]
}
