Interface patterns for software that acts with people’s money. Each has the problem, the pattern, where something like it already exists, and a test for whether it works. Open to use, and to argue with.
One sentence of what the agent wants, then why, the rule, the worst case and the way back.
AAtlas asks you
Pay $12.40 to flights-api.dev
Why
Fares for your March trip
Rule
Data, $50 a day
Worst case
$12.40, once
Undo
10 s to cancel
RefuseApprove
Specimen
Problem
Agents act in machine terms: contract calls, hashes, amounts in base units. A person can’t meaningfully approve what they can’t read.
Pattern
Before money moves, show one plain sentence of what the agent wants, then the reason tied to the task the person gave, the rule it falls under, the worst case in money, and how to undo it. Same order every time, so people learn where to look.
Seen in
Wallets that simulate a transaction and show balance changes before you sign; checkout sheets that show the merchant and total before you confirm.
Test
Someone who didn’t set up the agent can say, within ten seconds, what will happen and how much it can cost.
In my work
At Trust Wallet, the swap review that separated approval from the exchange and put fees up front.
02Pattern
Spending policy
Limits written once in the person’s own terms, shown with what’s used beside every request.
Your rules for Atlas and Scout
Data$21 of $50 today
Trades$1,500 of $4,000 today · $2,000 each
New sellersAsk me
Lowering a limit is instant. Raising one takes 24 hours.
Specimen
Problem
Asking every time teaches people to approve everything. Never asking hands over the wallet.
Pattern
Limits the person writes once, in their own terms: per payment, per day, per seller, per kind of purchase. The policy is shown, with how much of it is used, next to every request it governs. Raising a limit is slower than lowering one.
Seen in
Card spending limits and merchant blocks in banking apps; parental controls; spending limits and session keys in smart-contract wallets and agent wallets.
Test
A week later, people can read their policy back and predict what the agent will do.
In my work
Approval and permission gates in DEED.
03Pattern
Agent refusal
The agent stops itself, names the rule, and hands the decision back.
SScout stopped itself
Buy $5,000 of SOL
Refused by the agent2.5 times your $2,000 per-trade limit. Nothing has moved.
Sign this one on my deviceKeep the refusal
Specimen
Problem
An agent that only ever proposes leaves the person as the last line of defence, at the worst possible moment.
Pattern
When a request breaks a rule, the agent stops before asking, names the rule, and offers ways forward: sign this one on your device, change the rule with a delay, or keep the refusal. Every refusal is recorded.
Seen in
Card declines that say why and let you approve a single payment in the app.
Test
Refusals are rare, specific and reversible by the person, and none happen silently.
In my work
DEED records what an agent refused and the rule each refusal protected.
04Pattern
Recovery
A cancel window after approval and a way to revoke later. Recovery is a button, not a ticket.
Approved 14:02 · Buy $1,200 of SOL
Cancel · 30s
Standing permissions
Atlas · data purchasesRevoke
Scout · trades on your exchangeRevoke
Specimen
Problem
Money that moves instantly can’t be called back, and a support ticket is not recovery.
Pattern
A short, visible countdown after approval in which cancelling is one tap and costs nothing; longer windows for larger or first-time actions. Afterwards, a place to see and revoke every standing permission.
Seen in
Undo Send in email; scheduled transfers you can cancel before they go; tools for revoking token approvals.
Test
People use cancel when they should, and the window is short enough that nobody notices it otherwise.
In my work
At De.Fi, Shield, for reviewing and revoking the contract approvals that let apps spend your tokens.
05Pattern
Proof of human
For new limits and new recipients, a signature only the person can give, and a delay.
Raise the per-trade limit to $5,000
Confirm on your phoneA signature only you can give, on your own device.
Takes effect Thursday 14:02, in 24 hours.
A hijacked session can’t raise a limit and spend under it in the same hour.
Specimen
Problem
An agent’s session can be hijacked and its instructions injected. Some actions should need the person, not the session.
Pattern
Raising a limit, adding a recipient or moving a large amount needs a signature only the person can give on their own device, and the change takes effect after a delay a hijacked session can’t skip.
Seen in
Hardware wallets that show the transaction on the device’s own screen; passkeys; banks’ waiting periods for new payees.
Test
No single compromised session can raise a limit and spend under it in the same hour.
In my work
At Trust Wallet, address-risk warnings and alerts on suspicious operations, designed with the security team.
06Pattern
Receipt
What was proposed, under which rule, who approved, what happened, how to dispute.
Receipt 7F3A
Proposed
Pay $12.40 to flights-api.dev
Rule
Data ≤ $50/day · used $21
Approved
You · 14:02
Result
400 fare lookups delivered
Dispute
Until 21 Nov
Specimen
Problem
After the fact, people can’t tell what an agent did, under which rule, or how to dispute it.
Pattern
Every action leaves a receipt in plain words: what was proposed, the rule it fell under, who approved it, what happened, what it cost, and how to dispute it. Receipts are searchable and can be exported.
Seen in
Card notifications with the merchant’s name and location; bank statements.
Test
A person can answer “why did this happen?” from the receipt alone.
In my work
Transaction progress and status at Trust Wallet; records of agent work in DEED.