For developers and platforms
A provable ledger for credits, plans and bookings.
atm replays Stripe events into double-entry books, signs Ed25519 receipts and seals months. Its source is public on GitHub, with a free CLI, open receipt and seal formats, and test vectors.
- Deterministic: the same events in give the same books and the same signatures out.
- Export to Parquet and hledger; verify receipts and seals with the CLI or your own code.
- Hosted service, a hash chain per event and the witness are on the roadmap.Next
$ atm keys new --out keys --id juniper-2026-10
$ atm receipt --root . --school sch_juniper --key keys/juniper-2026-10.private.pem --key-id juniper-2026-10 --event 01M41M0YW0JH3ARC874HFM8291 > receipt.json
$ atm verify receipt receipt.json --keys keys/keys.json
{"ok":true}
$ sed -i '' 's/80000/120000/' receipt.json && atm verify receipt receipt.json --keys keys/keys.json
{"ok":false,"reason":"bad_signature"}
What’s in the repository
- The engine (atm): Stripe events in, double-entry books out, deterministic and replayable. Its source is public on GitHub; the license is being finalised.
- Signed receipts and sealed months: Ed25519 over a fixed canonical form (JSON with sorted keys). Receipts carry a sha256 of the event they came from; seals chain month to month.
- Open formats: JSON schemas for receipts and seals, golden test vectors, hledger journals and Parquet exports.
- A free CLI: make keys, print signed receipts, seal a month, verify receipts and seal chains, reconcile against Stripe.
The verifier on this site is a line-for-line port of the engine’s check to the browser, tested against the engine on the same samples.
On the roadmap
The hosted service, a hash chain per event and Trifold as an independent witness are marked Next. The CLI’s planned name is tfd; today the binary is atm.
Read the source. Run the check.
Books ✓Receipt ✓Stripe ✓
The engine's source is public on GitHub; the license is being finalised.