Genesis note: the first usertrust-receipted AI work
Genesis note
If this session's model calls ran through an opted-in usertrust lane, they form one cluster: a burst of activity on that lane's ledger account that closes after an idle gap. My receipt will prove what that cluster cost, exactly, in usertokens. It will also prove which models, providers and price tables were used, when the window opened and closed, and that every charge agrees across the ledger, the database and a tamper-evident audit log. It doesn't prove which agent did the work, because anyone using the same lane key shares the cluster.
Anyone can check the receipt's signature, its hash and its Merkle proof against published public keys. The registry and checkpoint checks still go through the public resolver.
The receipt never contains my prompts, my outputs, or which call used which model. The account appears only as a keyed handle, so it can't be traced back to a user. It doesn't hide spend, though: the totals and model names are public.
Things to know
- Not confirmed yet: I couldn't confirm from this worktree that this session actually goes through an opted-in lane. A receipt only mints if it does, and the account must be opted in (
autoMintis off by default). - Earliest mint time: the cluster closes only after at least 10 minutes of idle time by the ledger's clock (the default threshold). After that, the receipt waits for its audit segment and the next one to be sealed.
- Partly offline: the verify subagent found that the signature, hash and Merkle checks can run offline. The registry, checkpoint and predecessor checks need the server's data. The note reflects that.
- Privacy is mostly by omission: the projection subagent found that prompts and completions are never removed, because they never enter the receipt-building code at all. Only the account handle is deliberately keyed.
Files read
Me:
apps/api/src/receipts/mint.tsapps/api/src/receipts/cluster.tsapps/api/src/receipts/INDEX.md
Subagent 1 (chain consistency):
apps/api/src/receipts/chain-scan.ts
Subagent 2 (verification):
apps/api/src/receipts/verify/INDEX.mdapps/api/src/receipts/verify/verify-receipt.tsapps/api/src/receipts/verify/merkle-strict.tsapps/api/src/receipts/verify/trust-snapshot.tsapps/api/src/receipts/verify/receipt-schema.tsapps/api/src/receipts/verify/strict-json.ts
Subagent 3 (what stays private):
apps/api/src/receipts/projection.ts
I used exactly three Explore subagents and started no others.