DefendableLedger · Publication Flow
What is real today
Section titled “What is real today”- Cloud (LIVE): DefendableCloud serves the per-org hash chain at api.defendablecloud.com —
GET /ledger(the chain inorg_seqorder) andGET /ledger/verify(server-side recompute, auth-gated). This is the surface to point anyone at when they want verifiable receipts. - Router (local): DefendableRouter v0.1 writes flat checksummed-not-chained receipts to
data/receipts/YYYY-MM-DD.receipts.jsonl, one line each with achecksum_sha256. There is no publisher and no public render — it is a local artifact only.
The intended flow (roadmap)
Section titled “The intended flow (roadmap)”1. Intake received │ (roadmap) ▼2. Receipt + Verdict + Pair + Deed minted (4 rails) │ (roadmap — only Rail 1 receipts exist today) ▼3. Records appended locally to a hash-chained ledger │ (roadmap — no defendable_ledger.jsonl today) ▼4. Batch publisher copies new records into a public repo │ (roadmap — no publisher, no defendable-ledger repo) ▼5. git push → CF Pages build │ (roadmap) ▼6. defendableledger.com renders records publicly (roadmap — no /records or /verify pages)Why batched, not per-intake (design rationale)
Section titled “Why batched, not per-intake (design rationale)”The design favors batched publication over per-intake commits for two reasons, should it be built:
- Intake stays fast. Per-intake git commit + push + CF rebuild would block the response. Local writes are milliseconds.
- Git history stays sane. High intake volume would mean one commit per intake; batching keeps the repo readable.
Publisher CLI (planned, not implemented)
Section titled “Publisher CLI (planned, not implemented)”# PLANNED — does not existdefendablerouter ledger publish --since <iso> --repo <path> --commit --pushPrivacy & redaction (planned)
Section titled “Privacy & redaction (planned)”A --redact mode that strips classified fields before publication is planned, not built. Public-by-default with operator-grade discretion is the intended principle.
Verification — use the real surface
Section titled “Verification — use the real surface”Until the publication pipeline exists, verification runs against the live cloud chain: GET /ledger/verify recomputes each receipt_sha256 over the canonical (orjson sorted-keys) payload, checks sequential org_seq, and checks each parent_hash link — server-side and auth-gated. Verify a Receipt →
ENS / IPFS sibling (planned)
Section titled “ENS / IPFS sibling (planned)”Pinning a published /dist to IPFS and updating an ENS contenthash for the legacy streetledger.eth.limo audience is planned, contingent on the publisher existing first.
🐝 Roadmap for the public render · the live chain is at api.defendablecloud.com · to the shed.