Proof that an action actually happened.
RootBlocks turns every governed action (a merge, a release, a measured metric) into a signed, append-only receipt. Anyone can verify one offline, with no account and no trust in us.
$ npx rootblocks-verify receipts.jsonl --key pubkey.pem Ledger: 4 entries Key: ed25519:199aa76… ✓ [0] attest.people-served-unique… observed ✓ [1] attest.transactions-processed observed ✓ [2] attest.data-points-managed observed ✓ [3] attest.decisions-on-record observed 4/4 verified ✓ VERIFIED · evidence.v1
Verify a receipt in 30 seconds
Hand a receipt and a public key to the verifier. It checks three things, all offline: the signature, conformance to this standard, and (for a ledger) that every entry holds.
Nothing was altered
The detached ed25519 signature is checked against the signer's public key. Change one character and it fails.
It's a real receipt
The document conforms to evidence.v1, the schema on this site, whose $id is the URL you read it at.
The whole ledger holds
For an append-only ledger, every entry passes. For a packed bundle, the archived bytes match the manifest too.
What's inside a receipt
A real attestation: a founder stating a published metric is genuine. It records how the number was measured, never the data itself, and rides beside a detached signature.
{ "schemaVersion": "rootblocks.evidence/v1", "operationType": "attest", "status": "passed", "assurance": "observed", "actor": { "type": "human", "id": "DV-P33F…" }, "provenance": { "attestor_datta_dv": "DV-P33F…", "subject": { "metric": "people_served…", "value": 1001465, "sourceSystem": "insttantt-db-prod", "method": "SELECT COUNT(DISTINCT…)" } } }, "redaction": { "status": "not-needed" } } + signature { ed25519, keyId, value }
operationType
What happened: run, code.merge, release, or attest. One vocabulary across the lifecycle.
actor · attestor_datta_dv
Who stands behind it, named by a Datta identity: a person, an org, or an agent.
subject
The claim itself: the value, the system of record, and the exact method, so a third party can reproduce it.
signature
A detached ed25519 signature over the canonical bytes. This is what makes the whole thing tamper-evident.
How strongly is it backed?
A signature proves a receipt wasn't altered, not that its claim is true. Every receipt carries a seal for how strongly it's backed. The blocks fill as the proof gets stronger.
The machine-readable spec
Every schema is served at the exact URL it claims as its $id, so tools resolve it directly. Every receipt pins the major version rootblocks.evidence/v1: minors only ever add, so a receipt signed today still validates in ten years.