The freelancer and agency trust problem
Selling AI agent work creates a dispute neither side can resolve with words:
- The client cannot inspect the work. Hours on a timesheet are legible. Hundreds of agent tool calls are not. The deliverable may be excellent, but the client has no window into what actually ran.
- Screenshots are not proof. Anyone can screenshot a terminal. An export of a chat log can be edited before sending. The client knows this, even if they never say it.
- Disputes default to discount. When a client questions the work and you have no evidence, the conversation ends with you cutting the invoice. Evidence ends that conversation before it starts.
What the client really wants is not a longer report. It is something they can check themselves, without taking your word for it.
The fix: receipts as invoice attachments
For each billed session or task, mint an AER-1 receipt per tool call (or one chained receipt bundle for the whole run), and attach it to the invoice:
- Run the work with receipt collection on. Every tool execution gets a receipt: identifier, creation time, tool and caller scope, the exact bytes of the result, and a SHA-256 output commitment. Receipts chain together, so the whole run is one verifiable record.
- Reference the receipts on the invoice. Next to each line item, cite the receipt identifiers or the bundle: "Website research pass: 214 tool calls, receipt bundle 9f3a...". The invoice now points at evidence, not just a number.
- Include the verification link. One link, zambo.dev/verify, where the client pastes a receipt or clicks through the bundle. No account, no signup, no software to install.
The client does not need to understand the cryptography. They see "verified" on the receipt they checked, for the work you billed. That is the whole proof, and it runs in seconds.
The verification link the client can click
What the client experiences
They open zambo.dev/verify, paste the receipt from your invoice, and get a verdict: the stored result matches what the tool returned, or it was tampered with. They never needed your account, your platform, or your word. The checker is public and the format is an open IETF Internet-Draft, so anyone can implement their own verifier and get the same answer.
That independence is the point. Evidence the client checks themselves ends disputes. Evidence only you can produce starts them.
What to send with the invoice
Make it a repeatable packet, the same shape every time:
- The invoice PDF with receipt identifiers cited per line item.
- The receipt bundle (JSON), one file per billed session, hash-chained per run.
- The verification link (zambo.dev/verify) printed on the invoice, next to the receipt references.
- Your own archive copy. Keep the same bundle you sent. If a dispute ever reaches anyone else's desk, you both hold identical evidence.
Clients who receive this twice start expecting it. It becomes your differentiator: the freelancer whose invoices come with proof.
What receipts prove, and what they do not
Say it plainly to the client, because honesty is what makes the proof credible: a verifiable receipt proves the saved record was not changed. It proves the tool ran and the result is exactly what the tool returned. It does not prove the answer was correct, that the right tool was chosen, or that the outcome was worth the price. Quality is still your reputation. The receipt just removes the argument about whether the work happened.
Mint your first proof-of-work receipt now
Generate a real verifiable receipt on the try page in 30 seconds, no signup. Verify it at zambo.dev/verify, then read the format behind it: draft-zambo-aer1 on the IETF Datatracker. Your next invoice can carry proof.