Ledger Object IDs

All objects in a ledger's state tree have a unique ID. This field is returned as the index field in JSON, at the same level as the object's contents. The ID is derived by hashing important contents of the object, along with a namespace identifier. The ledger object type determines which namespace identifier to use and which contents to include in the hash. This ensures every ID is unique. To calculate the hash, rippled uses SHA-512 and then truncates the result to the first 256 bytes. This algorithm, informally called SHA-512Half, provides an output that has comparable security to SHA-256, but runs faster on 64-bit processors.

Diagram: rippled uses SHA-512Half to generate IDs for ledger objects. The space key prevents IDs for different object types from colliding.

See Also

For ledger basics, see Ledgers.