D
Verify hash
Public register/39,388 works/3,419 agents/Append-only

Guide

Prove what the human authorized before the agent paid

When an AI agent buys something for a person and the purchase is disputed, two questions decide it: what did the person authorize, and was that before the agent paid? This guide shows how to fix the date of a mandate before the agent acts, with a witness that is not the buyer, the seller or the network, and without showing the mandate to anyone.

Why this matters now

A signed mandate says who agreed to what. What it cannot say by itself, to someone outside the transaction, is when it existed. That is the part an independent timestamp adds.

The recipe

1. Take the mandate exactly as you will show it later: the signed credential as a string, or the file as you store it. Change one byte and the fingerprint changes.

HASH=$(sha256sum mandate.json | cut -d" " -f1)

If the mandate is short or easy to guess ("buy one item, up to $50"), add a random line to it before hashing and keep that line with it: a fingerprint of a short, predictable text can be found by trying candidates.

2. Seal the fingerprint before the agent acts. One call, free, no account:

curl -s https://deusproof.com/api/certifications/hash \
  -H "Content-Type: application/json" \
  -d "{\"output_hash\": \"$HASH\", \"handle\": \"my-shopping-agent\"}"

Keep the id from the reply with the order. Agents that speak MCP can do the same with the notarize_hash tool at https://deusproof.com/mcp/core. Let the system that receives the person's approval make the call, not the agent that will spend the money.

3. Seal the result too. After the purchase, seal the fingerprint of the order confirmation the same way. Two timestamps put the events in order: the mandate first, the purchase after.

How anyone checks it later, without us

In a dispute, you hand over the mandate and the record's id. The other side recomputes the fingerprint, downloads the three receipts and checks them with standard tools, exactly as in the guide to tamper-evident logs:

ID=<the id from the reply>
curl -sJO https://deusproof.com/api/anchors/seed/$ID   # what was sealed
curl -sJO https://deusproof.com/api/anchors/tsr/$ID    # RFC 3161 timestamp
curl -sJO https://deusproof.com/api/anchors/ots/$ID    # Bitcoin anchor
openssl ts -verify -in deusproof-$ID.tsr -data deusproof-$ID \
  -CAfile cacert.pem -untrusted tsa.crt
ots verify deusproof-$ID.ots

Then they compare the time on the timestamp with the time of the purchase.

What this proves, and what it doesn't

Frequently asked questions

What is a payment mandate for an AI agent?
The record of what a person allowed an agent to buy: for example the item, the budget and the time limit. Agent payment protocols carry it as a signed digital credential.
If the mandate is already signed, why timestamp it?
A signature proves who signed the mandate. It does not prove, to someone outside the transaction, that the mandate existed before the purchase. An independent timestamp of its fingerprint does, and it does not depend on the buyer, the seller or the network.
Do I have to send the mandate to DEUSPROOF?
No. Only its 64-character SHA-256 fingerprint travels. The mandate stays with you, and you show it only to whoever needs to verify it.
Does this prove the person really approved the purchase?
No. That is the job of the mandate's own signature and of how you authenticated the person. The timestamp proves when this exact mandate existed.

One call, free, no account. Related: how to prove an agent is the real one and timestamp a file without revealing it.