SKIP TO CONTENT
AI AGENTS6 minStandards That Ship / Ep. 3 · Stage 3-3

Agent Payment Records: What to Keep Before a Dispute

A manager says she never approved your agent’s purchase. Which records would let you check?

XIN
Pixel-art illustration of a robot at a payment terminal tethered by a glowing cord back to a distant human silhouette.

IN 30 SECONDS

An authorization record is the set of linked traces behind an agent payment: who authorized it, what it could spend and what happened. It supports a review; it doesn’t assign liability.

KEY TAKEAWAYS · 3

  • A useful authorization record links the principal, the allowed action and the actual result. It supports a review; it doesn’t assign liability.
  • Two payments can settle the same way through x402; only a kept delegation record shows who approved one.
  • Don’t wait for ERC-8203 (Draft, open PR #1614, not merged): give agents that move money an identity and a scoped account now.
On this page

My proposal: three records for every agent payment

IN SHORT Link who authorized the agent, what it could spend and what actually happened, so a disputed payment can be reviewed step by step.

WORDS TO KNOW

Principal
The person or organization an agent acts for, who gave it the power to spend.
Delegation
A principal giving an agent permission to act, within limits such as a task, a budget or an end date.
Liability
Legal responsibility for a loss. The facts, the contracts and the applicable law decide it, not the payment code.

This is a proposed integration, not a deployed product. One record per question: the Principal The person or organization an agent acts for, who gave it the power to spend. See the glossary, the limit, the payment.

PROPOSED EVIDENCE: THREE RECORDS
Who authorized the agent?
Approved task and delegated scope
Principal
OnchainID (ERC-734/735), if the verifier trusts the issuer, checks validity and ties the claim to the action
What could it spend?
Effective policy and execution trace
Agent operator
ERC-3643 (defines no agent mandates); ERC-4337/7579, limits only if the account’s code or a module enforces them
Did it meet the terms?
Signed payment and settlement result
Payment integration
x402 (the scheme decides settlement); ERC-8203 (Draft, open PR #1614, not merged)
My proposal, mixing established parts with a draft (ERC-8203, open PR #1614, not merged). Linking x402 to the draft is my proposal, not part of it. The links support an investigation; they don’t decide liability by themselves.

IN PLAIN WORDS

Together, the three records make the evidence of Delegation A principal giving an agent permission to act, within limits such as a task, a budget or an end date. See the glossary stronger; a missing scope weakens it. That doesn’t mean no one can be legally responsible: what the records mean in law is a separate question.

Coming up next: So what changes when one record is missing?

A worked example: one payment, two records

IN SHORT The same small payment is easy to review when the delegation was written down, and hard when only the payment exists.

A WORKED EXAMPLE

Illustrative numbers

PASSThe ops team’s agent buys one report, delegation kept

INPUT

Principal
ops team
Delegation
market reports, cap 20.00 USD a month
Spent so far
6.60 USD
Price asked
0.05 USD

WHAT HAPPENS

  1. The agent presents a claim naming the ops team as its principal.
  2. The smart account checks the cap: 6.65 USD stays under 20.00 USD.
  3. The payment is signed and settled through x402.
  4. The app stores the delegation ID beside the settlement result.

OUTPUT

Record
principal + scope + result, linked
Who approved it?
ops team, delegation D-12

GAPSame payment, no delegation record

INPUT

Principal
unknown
Delegation
none written down

WHAT HAPPENS

  1. The wallet signs and the payment settles normally.
  2. The report arrives. Nothing links the payment to a task or a budget.

OUTPUT

Record
signed payment + settlement only
Who approved it?
open question

Both payments settle the same way, and x402 sees no difference. What the application kept is the whole difference.

The complete record tells a reviewer where to look.

Coming up next: So where does your system stand today?

What you can do today, before the standard is final

IN SHORT Don’t wait for ERC-8203, a Draft in open PR #1614, not merged. Give agents that move money a real identity and a scoped account now.

WHERE DOES YOUR SYSTEM STAND?

Decide: Can the payment be linked to an approved delegation?Decision tree: Can the payment be linked to an approved delegation? If Principal, scope and result linked, then Evidence ready for review. If Principal known, scope missing, then Delegation evidence incomplete. If Signed payment and settlement only, then Business context still needed.DECIDECan the payment be linked toan approved delegation?If principal, scope andresult linkedEvidence ready forreviewCheck authenticity andenforcement; legalconclusions need separateanalysis.If principal known, scopemissingDelegation evidenceincompleteIf signed payment andsettlement onlyBusiness contextstill needed

Step 1. Disputed payment. One question decides where you stand.

Pick a step to see it move
  1. Disputed payment One question decides where you stand.
  2. All linked All three are linked: the evidence is ready for review.
  3. Scope missing Scope missing: find the approval and what authority it granted.
  4. Payment only Payment only: who approved it stays an open question.
x402 alone leaves you on the bottom branch. The three records move you up.

Then ask: what proof could your app show for a disputed payment? Check the payment scheme and any identity or receipt extensions, then write down what your rules must record.

WATCH OUT

Use reviewed code and explicit permission rules. Real code for this integration must check that the delegation is genuine, tie each payment to one asset and one recipient, block replays (one signed payment used twice), handle expiry and revocation, and check the off-chain condition.

ERC-8203 is still a Draft in open PR #1614, not merged. I wrote its reference implementation so people could discuss it with real code. Test against one pinned version.

ITEM GET

Keep the approval yourself

A settled core x402 record proves the payment, not the approval: keep the delegation record yourself or via an extension, linked to each payment.

Sources: x402 payment authorization (HTTP 402), ERC-8203 draft, open PR #1614, not merged.

FAQ

A transaction alone doesn’t decide that. It depends on the parties, what they agreed, what power was delegated, what went wrong and which law applies. This is an engineering model for evidence, not a rule for who is liable.

Yes, as the second of three named authors; I wrote its reference implementation, and Xianrui Qin is the primary author. Treat it as work in progress, not something to build against today.

STAGE CLEAR

What you now know

  • A reviewable agent payment links three records: who authorized it, what it could spend, what happened. They support a review; the facts, the contract and the law decide liability.
  • Without a delegation record, who approved a payment stays an open question, even when it settled.

Check yourself

Tap or click a question to see the answer.

Your agent’s x402 payment settled with a valid signature. A manager says she never approved it. Which record could show whether she did?

The delegation record linked to the payment, if one was kept. The signature and settlement only prove the wallet signed and the payment went through.

Next episode:How do you check that a bot trading a security token for an investor was allowed to do it?6 min
Adam Boudjemaa
Adam Boudjemaa

Former CTO of Integra. Named author (1 of 5) of ERC-3643, first author of ERC-6960, co-author of ERC-7410, and co-author of ERC-8203, which is still a draft. Building production AI and regulated Web3 systems.

Have a project to ship or a role to fill?

Discuss your project or role
Follow the engineering notes

Get new articles on production AI and smart contracts by email.