How the ledger is anchored
Every entry on the public ledger is hash-chained and signed by Rightshold. To make sure nobody, Rightshold included, can quietly rewrite history, the ledger is also anchored in three independent places. Any one of them is enough to catch a rewrite, and they don't depend on each other: if one stalls, the others keep going.
Live status
- Bitcoin (OpenTimestamps): 0 of 56 blocks confirmed in Bitcoin, 54 pending. Latest Bitcoin block: 972944.
- EVM chain: Ethereum Sepolia testnet (testnet proof — no value): 0 confirmed, 0 pending
- Checkpoint Log: checkpoint #12, 57 entries, published 2026-10-24T18:06:31.850Z.
Machine-readable: /v1/anchors/status.
1. Bitcoin
Each sealed block hash and each daily super-root goes to public OpenTimestamps calendars, which commit it into a Bitcoin transaction. Verify with ots verify using the proof at /v1/ledger/blocks/{height}/anchor.ots. If Bitcoin or the calendars stall, proofs simply wait as pending and are confirmed later, in order.
2. EVM chain (Base, optional Ethereum)
When enabled, the same block hashes and super-roots are posted as the input data of a zero-value transaction from the anchor address to itself: the ASCII bytes RSH1 followed by the 32-byte commitment. Check it on any explorer or RPC for that chain: /v1/ledger/blocks/{height}/eth-anchor gives the transaction hash. A proof can carry Bitcoin only, EVM only, or both; node ledger-witness.mjs verify-anchors --height N (from /cli/ledger-witness.mjs) checks whatever is there.
3. Checkpoint Log
Rightshold's own transparency log, built like Certificate Transparency and needing no blockchain. At least every 15 minutes, and whenever the ledger grows, Rightshold publishes a signed checkpoint: the size of the ledger's Merkle tree, its root hash and the time, chained to the previous checkpoint.
- Latest:
/.well-known/rightshold-checkpoint.json· history:/v1/checkpoints - Append-only check:
/v1/checkpoints/consistency?first=A&second=Breturns an RFC 9162 consistency proof that the tree of size B starts with the tree of size A, unchanged. - Inclusion:
/v1/checkpoints/inclusion?seq=Nproves entry N is in the tree. - Independent witnesses: any domain can co-sign checkpoints after checking consistency. The protocol is at
/v1/checkpoints/witness-spec; every cosignature is verified against the key the witness publishes on its own domain. - Copies: checkpoints are also written beside the database on persistent storage, and anyone can keep a verified mirror with
node ledger-witness.mjs checkpoint --state FILE --archive DIR.
Keep the last checkpoint you saw. If a later one isn't consistent with it, the log was rewritten, and you can prove it with the two signed checkpoints.
