How do you prove your app didn't do something?
I’ve been building a spend-limited agent wallet on Canton, and the part that
turned out to matter isn’t the spending — it’s the refusals.
Every attempt the agent makes, allowed or refused, becomes one hash-chained
receipt: what was tried, what the ledger decided, and which rule decided it.
The limits are assertMsg fences in the Daml, not checks in application code
— so a refusal is the ledger’s, not my app’s claim about itself.
The useful part is what you can hand someone afterwards. Drop the chain on a
page and it verifies with nothing installed, no account, no node. Edit one
receipt and every seal after it breaks.
- Check a chain: Check a payment record | KYA Rails
- Spec + 16 conformance vectors: cantor8_kya_rails/SPEC.md at main · dominicrume/cantor8_kya_rails · GitHub
pip install knowyouragenticai-receipts— MIT, zero dependencies
Three independent implementations (Python, JS, Go) agree byte-for-byte on the
canonicalisation, and two of the vectors exist because I asked which wrong
implementations still passed — two did.
Genuinely want to know: is “prove the agent didn’t do X” something others
need, or is it just my problem?