Simple Serialize (SSZ)
Abbreviation: SSZ
Pronunciation: SIHM-pul SIH-ree-uh-leyez (ESS-ESS-ZEE)
Also known as: Simple Serialize, SSZ
Definition
Simple Serialize is Ethereum consensus-layer serialization with deterministic encodings and Merkleization rules for specialized structured data and compact proofs. SSZ separates serialization from Merkleization, allowing clients to compute hash-tree roots and generate compact proofs about individual fields. Limits and type definitions are part of the schema, so two superficially similar values may have different roots under different types. Implementers must follow canonical offsets, length rules, endianness, padding, and mix-in lengths exactly.
Overview
Simple Serialize defines how Ethereum consensus data types are encoded into bytes and committed through Merkle roots. It covers fixed and variable-size values, containers, lists, vectors, unions, and other protocol structures.
SSZ separates serialization from Merkleization, allowing clients to compute hash-tree roots and generate compact proofs about individual fields. Limits and type definitions are part of the schema, so two superficially similar values may have different roots under different types. Implementers must follow canonical offsets, length rules, endianness, padding, and mix-in lengths exactly. SSZ is not a general text format and does not make arbitrary application data self-describing. Consensus compatibility requires the same fork-specific schemas and validation limits across all clients.
Conformance to Simple Serialize (SSZ) requires more than matching a field name or example. Implementations should validate normative requirements, encodings, error behavior, security conditions, and test vectors, including malformed and boundary inputs that ordinary happy-path tests miss. A published standard does not prove universal adoption, safe implementation, or activation on a particular blockchain or payment network. Teams adopting Simple Serialize (SSZ) should track errata, compatibility changes, and the deployed software versions that enforce it.
Operational records for Simple Serialize (SSZ) should retain the version and configuration used for each relevant transaction or message. This allows reproducible debugging when a later upgrade changes parsing, validation, signing, or interoperability behavior. Draft, final, optional, and network-activated specifications have different authority, and similarly named deployments may support different subsets or extensions. Simple Serialize (SSZ) should be implemented against an exact document revision, status, and activation context.
Key Takeaway
SSZ gives Ethereum consensus data canonical bytes and Merkle roots, but exact schemas and limits are part of the meaning.
Sources
- Ethereum Documentation: Smart Contracts — Ethereum Foundation (2026-07-30)
- Bitcoin Developer Guide: Block Chain — Bitcoin.org (2026-07-30)