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 bits. 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 more information how the XAG Ledger creates and uses hashes, see Hashes.
  • For ledger basics, see Ledgers.