v3.9.0 · the keystone primitive

Agent Transaction Primitive

WAB is no longer just a discovery and execution protocol — it is the trust + transaction layer for agentic commerce. ATP makes four guarantees first-class: a signed intent contract from the human, idempotent execution, a cryptographically verifiable receipt, and explicit compensation.

The lifecycle

1 · IntentThe user declares scope, spend cap, expiry. Single-use nonce.
2 · AuthorizeThe user confirms. The contract is now binding on the agent.
3 · TransactIdempotent execution under the intent. Every step is logged.
4 · ReceiptEd25519-signed canonical JSON. Anyone can verify it.
5 · CompensateIf something goes wrong, the rollback path is explicit.

Why this matters

For users

You see exactly what you authorized, what the agent did, and you can verify the receipt later — even without WAB online.

For agents

No more retries causing double-charges. idempotency-key + the intent's spend cap make safe execution structural, not aspirational.

For sites

Every transaction comes with a signed proof of consent. Disputes become deterministic, not he-said-she-said.

For ecosystems

The protocol is open. The verification endpoint is public. The receipt format is canonical JSON. No vendor lock-in.

Quick start

// Node 18+ — install: npm i web-agent-bridge
const { ATPClient } = require('web-agent-bridge/sdk');

const atp = new ATPClient({ baseUrl: 'https://webagentbridge.com', token: USER_JWT });

// 1) The human declares the contract.
const intent = await atp.createIntent({
  purpose: 'Buy a book ≤ €30',
  scope: { actions: ['search','add_to_cart','checkout'] },
  spend_cap_cents: 3000,
  ttl_seconds: 600,
});

// 2) The human confirms.
await atp.authorizeIntent(intent.id);

// 3) The agent executes — idempotent by key.
const tx = await atp.beginTransaction({
  intent_id: intent.id, amount_cents: 1500,
  idempotency_key: 'order-' + Date.now(),
});
await atp.transition(tx.id, 'executing');
await atp.step(tx.id, { action: 'checkout.confirm', evidence: { order_id: 'X1' } });
await atp.transition(tx.id, 'executed');
await atp.transition(tx.id, 'settled');

// 4) Signed receipt — anyone can verify.
const receipt = await atp.issueReceipt(tx.id);
const verification = await atp.verifyReceipt(receipt.id);
console.log(verification.verification.ok); // true

The signed receipt

Every receipt is a canonical JSON document signed with Ed25519. The public verification endpoint (POST /api/atp/receipts/verify) requires no authentication — that is the whole point. Anyone can hold a receipt accountable.

{
  "type": "atp.receipt.v1",
  "receipt_id": "atp_rcpt_…",
  "transaction": { "id": "atp_tx_…", "status": "settled", "amount_cents": 1500, … },
  "intent":      { "id": "atp_int_…", "purpose": "Buy a book ≤ €30", "scope": { … }, … },
  "steps":       [ { "seq": 1, "action": "checkout.confirm", "state": "succeeded" } ],
  "signature":   {
    "algorithm": "ed25519",
    "value":     "BASE64…",
    "key_id":    "16-char fingerprint",
    "public_key":"BASE64…",
    "signed_at": "ISO-8601"
  }
}

Open core · paid features

The protocol and verification stay open so the standard can spread. Higher throughput, persistent key binding, and enterprise features fund the work.

CapabilityTierNotes
Protocol spec & SDKopen sourceMIT licensed. Implement it anywhere.
Public receipt verification (no auth)open sourceAnyone can verify any ATP receipt.
Intent creationfree10/day on Free, 50/day on Starter.
Receipts with persistent site key bindingpro500 intents/day. Continuity of trust across receipts.
Idempotent execution at scaleproHigher quotas, audit export.
Compensation flows + retry classificationbusiness5 000 intents/day, webhook subscriptions.
HSM-backed signing, custom workflows, SLAenterpriseUnlimited, dedicated settlement queue.

Security posture

Reference

Full API in /docs.html and machine-readable spec in docs/SPEC.md. Mount path: /api/atp. Source: github.com/abokenan444/web-agent-bridge.

We run our own business on it

WAB doesn't just publish this protocol — it bills its own customers with it. Every subscription processed through webagentbridge.com produces a publicly-verifiable Ed25519 receipt. Audit the books at /transparency.html.