Sign
You sign a mandate once, with a passkey: what to buy, the most to spend, where, and by when.
Keelson checks every AI-agent purchase against what you signed before it's paid, and seals it with an Alibi anyone can verify.
An agent checks out under a mandate of shoes, size 10, at most 100 dollars. Keelson countersigns the 94 dollar cart and it is paid.
Synthetic demonstrationThe liability layer for AI-agent purchases on PayPal
Today, you do. Card rules hold the cardholder responsible for what the agent buys, and no one kept proof of what you actually asked for.
Before you sign, you see who answers for each line if it goes wrong. Nothing is decided after the fact.
| Field | What you signed | Leader | Who answers | If it goes wrong |
|---|---|---|---|---|
| Total | ≤ $100.00 | Keelson-verifiedChecked against the cart before anything is paid. | Keelson pays | |
| Store | On your allowed list | Keelson-verifiedChecked against the list you signed. | Keelson pays | |
| Quantity | 1 pair | Keelson-verifiedChecked against the cart line items. | Keelson pays | |
| Deliver by | Fri, Nov 13 | Keelson-verifiedChecked against the store's quoted date. | Keelson pays | |
| Size | US 10 | Operator-attestedThe agent's operator states it, signs it and backs it with a bond. | The operator's bond pays | |
| Returns | Free, 30 days | Operator-attestedStated by the operator from the store's policy, and bonded. | The operator's bond pays | |
| Style | Something that looks good | YoursTaste can't be checked. You see this before you sign. | Not covered |
Synthetic example. A store that ships the wrong item still goes through PayPal's dispute process; the Alibi travels with it as evidence.
One wrong-size order, from claim to refund. Nobody argues about who said what.
Synthetic example. PayPal still decides the dispute on its platform; Keelson's verdict decides who reimburses whom, and the Alibi goes in as evidence.
You sign a mandate once, with a passkey: what to buy, the most to spend, where, and by when.
Before anything is paid, Keelson checks the agent's cart against the mandate, field by field.
If it matches, Keelson countersigns and PayPal takes the payment with the Alibi attached. Otherwise nothing is paid.
The Alibi shows each party only what it needs. The mandate stays sealed until a dispute needs a field opened, and then it shows who answers for it.
Synthetic example. The Alibi carries claims and hashes; the mandate itself is never published.
A signed log only proves who wrote it. Rewrite an entry and re-sign it, and the signature still checks out. Keelson's record is a Merkle log whose root is published on-chain, so a rewrite breaks the math instead.
The order's record verifies: its root matches the checkpoint published on-chain.
Synthetic demonstrationSigned by the user, inside the mandate.
Public inputsmandateHash, passkeyAssertion
Checked by code that can prove what it ran.
Public inputsattestation, policyHash, cartHash
Recorded where no one can rewrite it.
Public inputslogIndex, inclusionProof, checkpoint
An open SDK, an MCP server and an Alibi verifier anyone can run.
// What every order carries in its Alibi
mandate hash of what the user signed
cart hash of what the agent bought
policy hash of the rules that ran
decision countersigned or blocked
attestation the hardware that ran the check
log where the record lives
fields who answers for each fieldimport { Keelson } from "@keelson/sdk";
const keelson = new Keelson({ apiKey });
// Before the agent pays
const alibi = await keelson.requestCountersign({ mandate, cart });
if (alibi.decision === "blocked") return alibi.reason;
await paypal.createOrder({
intent: "AUTHORIZE", customId: alibi.customId, ...cart,
});// The calls an operator makes, and nothing else
keelson.requestCountersign(mandate, cart)
keelson.attestField(orderId, field, value)
keelson.bond.deposit(amount)