continuity receipts
A receipt you can check without us.
One format, two reference implementations, one conformance corpus. This page is the technical companion to the short story on the trust page.
What a receipt is
Canonical JSON signed with Ed25519: who issued it (did:key or did:web), what happened (action, subject, hashes), and when. Two bundle profiles ship: session (a record of governed work) and karma-chain-head (an attestation over the local audit chain). Disclosure is first-class: a bundle can be redacted or disclosed without breaking its signature, and the spec defines exactly what each form reveals.
Spec 0.3 adds the offer/accept binding: an action can carry a signed offer, and the acceptance binds to it by digest. A missing offer is INSUFFICIENT_EVIDENCE; a mismatched or expired one is UNTRUSTED. Versions 0.1 through 0.3 verify in both implementations and in the hosted API.
Conformance
The repository carries a machine-checkable corpus: bundle vectors (including the 0.3 agreement cases, redacted and disclosed variants) and verification-receipt vectors. The Python and Rust implementations are differential-tested against the same corpus – currently 26/26 bundle vectors in agreement, with unsupported or malformed inputs failing closed rather than guessing. Verdicts are never upgraded by a missing check: no anchor means PROVISIONAL, not TRUSTED.
Verification receipts
A verdict is itself evidence. Add ?receipt=1 to the hosted verifier and it returns a signed verification receipt: the verdict, error codes, the bundle digest, the implementation and time. The digest rule is SHA-256 over canonicalized (JCS) bundle bytes, so any holder can reproduce it offline; the receipt is checkable at /verify-receipt with the same key or offline with the reference tools. The issuer's did:key is published at /info, which makes the verifier itself checkable.
Implementations
- pip install continuity-receipt – Python reference implementation with the CLI verifier.
- cargo add continuity-receipt – Rust reference implementation, same corpus.
- Hosted: api.whitemagic.dev/verify – stateless, keyed or x402; free evaluation keys are instant at mcp.whitemagic.dev/keys.
The five-minute walkthrough (install, offline verify, hosted verdict, signed receipt, offline check) lives in VERIFY_IN_5_MIN.md; the short version is on the trust page.
Honest gaps
No independent third-party review has been completed yet – the review brief is being prepared, and the conformance-referee role is open. Revocation checking is opt-in and only as fresh as the published revocation document. The hosted verifier runs under partial kernel confinement and logs access metadata only. And a receipt proves integrity and authorship, never truth: a valid signature says the issuer signed this claim, not that the claim is correct.