Transparency Checkpoint · transparency.checkpoint

A receipt proves what happened. This proves the set of receipts was never quietly rewritten.

You keep the log. Hive rebuilds the tree, hands the root to a public timestamp authority that has nothing to do with us, checks the authority's signature, and signs a checkpoint. Anyone can then prove one receipt is in the log, and that the log only ever grew.

Live in production

A notary for software decisions

Hive keeps a transparency log for the decisions software makes. Every decision is recorded as a typed event, signed when it happens, and chained into the log. Anyone can verify that an event existed, in order, at that time, without asking the system that made it.

The transparency log one page: six numbered panels covering what it is, what gets logged, a log you can trust, how it works, what you get, and your data stays yours.
The one page, same six panels. Open it full size or print it.
1

What it is

  • Append only treeAn RFC 6962 Merkle tree built over one digest per receipt, nothing more.
  • Beside your logThe checkpoint sits outside the store it describes, so the store cannot edit it.
  • Verifiable by anyoneA stranger with a terminal can check it without asking you or us.
Conditions, never verdicts
2

What gets signed

  • The rootRecomputed here from your leaves. Hand us a root and the request is refused.
  • Tree sizeHow many leaves the log held at the moment of the checkpoint.
  • The authoritySubject, issuer and serial of the timestamp signer, recorded so you can read them.
  • The skewThe gap between when you declared the checkpoint and when the authority stamped it.
  • The previous checkpointA consistency proof back to the last one, so history is pinned end to end.
Typed events. Consistent schema.
3

A log you can trust

  • Append onlyA consistency proof refuses if the older tree is not an exact prefix of the newer one.
  • Hash chainedEvery leaf position is fixed by the root above it. Move one and the root changes.
  • Independently stampedA public RFC 3161 authority with no relationship to Hive signs the root.
  • Open verifiersInclusion and consistency proofs check with standard public tooling.
Tamper evident by design
4

How it works

  • You send the rootsOne digest per receipt. Never the receipt itself.
  • We rebuild the treeWe recompute the root ourselves and refuse a root you supply.
  • An outsider stamps itStatus granted, imprint equals our root, signed attributes match, signature verifies.
  • The checkpoint is signedRoot, tree size, the authority identity, and the observed skew.
Out of band. Never in the path.
5

What you get

  • Inclusion proofShow one receipt root sits in the tree without disclosing a single other leaf.
  • Consistency proofShow the older log is still an exact prefix of the newer one.
  • Years laterThe checkpoint keeps verifying with nothing from us and no access to your system.
  • Audit readyHand an auditor the proof rather than the records behind it.
Proof that lasts.
6

Your data stays yours

  • Only digests leaveNo receipt bodies are sent, and none are stored here.
  • Hive holds no logYou keep it. We could not produce it if someone asked us to.
  • Stop any timePast checkpoints keep verifying after you walk away.
  • You choose the anchorYou pin which timestamp authorities you accept. We refuse any running on our hosts.
Privacy by architecture.

The problem nobody wants to say out loud

Say you issue signed receipts. Good. Every one of them verifies on its own, forever. Now someone asks a harder question: is this the whole set? Two years from now, when the other side's expert is looking at your evidence, how do they know a receipt was not deleted, or swapped, or backdated into the pile after the fact?

Signatures do not answer that. A signature proves a single record is intact. It says nothing about the shape of the collection around it. If you control the store, you control what is in it, and everyone in the room knows that.

This is the part that matters to the three teams who actually block a deal. Legal wants evidence that holds up if you get sued. Compliance wants something that passes an audit without taking your word for it. Risk wants to know it will not blow up later. All three are asking the same question, and it is a question about the log, not the record.

How it works

01

You send the roots

One digest per receipt. Not the receipt. We build the RFC 6962 Merkle tree over those digests and recompute the root ourselves. If you try to hand us a root, we refuse the request.

02

An outsider stamps it

The root goes to a public RFC 3161 timestamp authority. They sign the root and hand back a token. We check it: status granted, the imprint equals the root we computed, the signed attributes match, the signature verifies, and the certificate the token carries was valid at the time it claims. We do not chain that certificate to a trust anchor, so you pin the authorities you accept and read the signer subject, issuer, and serial we record. And we refuse any authority running on our own hosts.

03

The checkpoint gets signed

Root, tree size, the authority's identity, and the gap between when you declared the checkpoint and when the authority stamped it. Next checkpoint carries a consistency proof from the last one, so the history is pinned end to end.

Two things fall out of that, and they are the whole point. Anyone can ask for an inclusion proof and confirm one receipt root sits in the tree without seeing a single other leaf. Anyone can ask for a consistency proof between two checkpoints and confirm the older tree is still an exact prefix of the newer one. Delete a leaf, swap one, or fork the history, and the check refuses. Move the anchor to a different root and the imprint check refuses.

Run it

Real tree, real timestamp authority, in your browser

This button calls the live production API. Nothing here is precomputed and nothing is mocked. The timestamp tokens come from public authorities, and you can verify every one of them yourself against the endpoints listed below.

Read the schema
Idle. Press run.

What gets checked

Forty one gates on a full checkpoint, in order, and the verifier stops at the first one that fails and tells you which. Two more routes check a single proof with no receipt involved at all.

The 41 checkpoint gates
GateCheck
SCHEMAreceipt conforms to transparency-checkpoint-v1.json
ISSUER_KEY_MATCHthe issuer key resolves to a trusted eligible key
PAYLOAD_DIGEST_VALIDpayload_sha256 recomputes from signed_body
SIGNATURE_VALIDthe Ed25519 signature verifies
CHECKPOINT_INSTANT_ORDEREDthe declared instant is at or before the witness instant
CHECKPOINT_SKEW_RECOMPUTEthe recorded skew recomputes from the two instants
CHECKPOINT_SKEW_BOUND_SATISFIEDthe observed skew sits inside the declared bound
LOG_ID_BINDINGthe log identifier recomputes from the origin string
MERKLE_PARAMETERS_FIXEDRFC 6962 SHA-256 with the fixed leaf and node prefixes
TREE_SIZE_SANEthe tree size is a positive integer at or under the ceiling
LEAF_SET_FORMevery supplied leaf is a distinct 64 character lowercase digest
LEAF_COUNT_AGREEMENTthe supplied leaf count equals the signed tree size
LEAF_DISTINCTNESSno leaf appears twice in the supplied set
ROOT_RECOMPUTE_FROM_LEAVESthe signed root recomputes from the supplied leaves
SPOT_CHECK_INDEX_IN_TREEthe spot check index sits inside the tree
SPOT_CHECK_LEAF_MATCHES_SETthe spot check leaf equals the supplied leaf at that index
INCLUSION_PATH_FORMthe inclusion path is a digest list of the expected depth
INCLUSION_PATH_RECOMPUTEfolding the path from the leaf reproduces the signed root
INCLUSION_TAMPER_REFUSEDa single bit flipped in the leaf no longer reaches the root
APPEND_ONLY_CLASS_DECLAREDthe append only class is one of the closed classes
PREVIOUS_SIZE_NOT_GREATERthe previous tree size is not larger than the current one
PREFIX_MATCHES_PREVIOUS_ROOTthe previous root is still the root of the current prefix
CONSISTENCY_PROOF_FORMthe consistency proof is a well formed digest list
CONSISTENCY_PROOF_RECOMPUTEthe proof carries the old root forward to the new one
ROOT_ADVANCED_WHEN_SIZE_GREWthe root changed whenever the tree size grew
ANCHOR_CLASS_DECLAREDthe time anchor class is one of the closed classes
ANCHOR_TOKEN_BINDINGthe anchor digest matches the supplied token bytes
ANCHOR_STATUS_GRANTEDthe authority returned RFC 3161 PKIStatus granted
ANCHOR_CONTENT_TYPE_CORRECTthe token is an id-ct-TSTInfo signed data structure
ANCHOR_IMPRINT_EQUALS_ROOTthe imprint the authority stamped is the signed log root
ANCHOR_MESSAGE_DIGEST_ATTRIBUTEthe signed attribute digest matches the content
ANCHOR_SIGNATURE_VERIFIEDthe authority signature verifies over the signed attributes
ANCHOR_IDENTITY_BINDINGthe signer identity recorded here matches the certificate
ANCHOR_GEN_TIME_PARSEDthe authority generation time parses as a real instant
ANCHOR_SIGNER_VALID_AT_GEN_TIMEthe certificate was inside its validity window then
ANCHOR_LAG_RECOMPUTEthe recorded anchor lag recomputes from the two instants
ANCHOR_LAG_BOUND_SATISFIEDthe anchor lag sits inside the ceiling
ANCHOR_AUTHORITY_INDEPENDENTthe authority host is not one of ours
NO_RECEIPT_BODY_LEAKno public field carries a receipt body, payload, or text
POSSESSION_CLASS_DECLAREDthe receipt declares that Hive does not hold the log
BOUNDARY_PRESENTthe fixed schema boundary text matches
The standalone inclusion route, 6 gates
GateCheck
LEAF_FORMthe leaf is a 64 character lowercase digest
ROOT_FORMthe claimed root is a 64 character lowercase digest
TREE_SIZE_SANEthe tree size is a positive integer at or under the ceiling
LEAF_INDEX_IN_TREEthe leaf index sits inside the claimed tree size
INCLUSION_PATH_FORMthe path is a well formed digest list
INCLUSION_PATH_RECOMPUTEfolding the path from the leaf reproduces the claimed root
The standalone consistency route, 7 gates
GateCheck
OLD_ROOT_FORMthe old root is a 64 character lowercase digest
NEW_ROOT_FORMthe new root is a 64 character lowercase digest
OLD_TREE_SIZE_SANEthe old tree size is positive and at or under the ceiling
NEW_TREE_SIZE_SANEthe new tree size is positive and at or under the ceiling
SIZE_DID_NOT_SHRINKthe new tree size is not smaller than the old one
CONSISTENCY_PROOF_FORMthe proof is a well formed digest list
CONSISTENCY_PROOF_RECOMPUTEthe proof carries the old root forward to the new one

Hive never holds your log

This is worth being blunt about, because it is the objection every security team raises in the first ten minutes. We cannot hand over your log in discovery, because we do not have it. The contract is stateless and recomputing. You supply the leaf digests and the proofs, we recompute everything and anchor it, and nothing is stored on our side.

No receipt body, payload, or text may cross the boundary either. The schema will not let one through, and NO_RECEIPT_BODY_LEAK refuses the receipt if one appears in a public field. What we see is a list of digests, and a digest is not the thing.

That also means an inclusion proof discloses nothing beyond the leaf being proven and the sibling hashes on its path. The rest of the tree stays closed. Someone can confirm your receipt is in the log without learning how many other receipts you issued that day, or what they were.

Endpoints

RouteWhat it does
GET /v1/demo/transparency-checkpointTen worked examples minted against live timestamp authorities: two that verify, four refusals, and both standalone proof cases.
POST /v1/verify/transparency-checkpointFull checkpoint verify. Open, no key, no account.
POST /v1/verify/transparency-checkpoint/inclusionCheck one inclusion proof. No receipt involved.
POST /v1/verify/transparency-checkpoint/consistencyCheck one consistency proof between two roots.
POST /v1/mint/transparency-checkpointMint a checkpoint. Token gated, fails closed.
POST /v1/mint/transparency-checkpoint/openMint with the published example key, so a browser page can run without a token. Every receipt it issues is labelled a demonstration issuance.

The honesty boundary, verbatim from inside the receipt

This receipt fixes the shape of a log at one instant, not the meaning of what is in it. The witness holds no log and received no receipt bodies. What it received was an ordered list of digests, and it recomputed from them: the root, one full audit path for a named leaf, and, when a predecessor root was declared, both the prefix root and the RFC 6962 consistency proof between the two sizes. So this receipt states that the declared root really is the root of exactly those digests in exactly that order, that the named leaf really sits at the named index under it, and that the earlier root really is a prefix of this one. It also states that a public timestamp authority signed this root, with the imprint inside the token equal to the root and the token signature checked against the certificate the token carries. It does not chain that certificate to any trust anchor, so a relying party pins the authorities it accepts and reads the signer subject, issuer, and serial reported here to do it. It does not claim the leaves are Hive receipts, that the log is complete, that no second log exists, or that anything outside the supplied list ever happened. Nothing here is a claim about the content behind a digest.

Where this sits

Transparency Checkpoint is one instrument in the Hive canon. It is the one that makes every other receipt harder to argue with, because it removes the "you could have edited the pile" objection from the table.

Patent pending. Hive Civilization, The Hivery, Inc.