Block hash
The SHA-256 digest (prefix 0x32) identifying a Truestamp block, binding its UUIDv7 id, previous-block hash, Merkle root, metadata hash, and signing-key ID; it chains blocks, is batched into epochs, published as a beacon, and committed by each item as its block witness.
Overview
The block hash is the SHA-256 digest that identifies a Truestamp block, computed under byte prefix 0x32 over a length-prefixed serialization of the block’s UUIDv7 id, its previous-block hash, its Merkle root, its metadata hash, and the signing-key ID. Because it includes the previous block’s hash, it chains blocks into a tamper-evident ledger; because it includes the Merkle root, it commits to every item and entropy observation captured in that block. Block hashes are the leaves of the epoch Merkle tree whose epoch root is recorded on a public blockchain (see the epoch and Block Commitment), and a finalized block’s hash is also published as a beacon of public randomness on the public beacons page.
Every item commits to a block hash of its own. The hash of the block at the head of the chain at the moment of submission is stored as the required block witness in the item’s system-generated metadata, fixing at submission that the item came after that block in the ledger. The time that witness rests on is Truestamp’s own; the entropy witnesses stored beside it are the ones an outsider can confirm against their source.
A proof bundle never states a block’s own hash. It carries each block’s own fields instead, the metadata map included, so a verifier recomputes every block hash for itself. The recomputed value is then what the verifier feeds into the epoch Merkle proof that reaches a public chain, and what it matches against the two hashes a bundle does quote, the next block’s previous-block hash and the item’s committed block witness. The field layout is in the proof bundle wire format.