Three payment rails.
One call.
Visa Intelligent Commerce, Mastercard Agent Pay, and Coinbase x402 all shipped inside twelve months. None of them speak to each other. AWaaS is the neutral vault, policy, and routing layer that sits above all three, so an agent integrates payments once instead of three times.
Three rails, three token models, zero interop.
A team building an AI agent that needs to spend money today has to pick a side or build three integrations. Each rail has its own token lifecycle, its own authentication ceremony, its own webhook schema, and its own compliance surface. That work is undifferentiated for every single one of them.
- Instrument
- Card-based fiat
- Auth
- Passkey, step-up on enroll
- Surface
- /acp/v1/instructions
- Instrument
- Card-based fiat
- Auth
- Agentic tokens
- Surface
- Agent token API
- Instrument
- USDC on Base
- Auth
- Wallet signature
- Surface
- HTTP 402 challenge
// these do not converge. Visa will not abstract Mastercard. Mastercard will not abstract Visa. Neither will route a stablecoin. The fragmentation is structural, not temporary.
Everything an agent needs is three verbs.
Authorize a hold, execute a payment, cancel before commitment. Rail selection, token retrieval, and control enforcement happen underneath. Swapping rails is a config change, not a rewrite.
// hold a refundable deposit, release if the applicant doesn't qualify const hold = await wallet.authorize({ amount: 500.00, merchant: "mgmt_co_nyc", policy: "holding_deposit", rail: "auto", }); await wallet.cancel(hold.id); // no funds ever moved // a $0.004 property-data call routes to x402 — no passkey, 180 ms await wallet.pay({ amount: 0.004, merchant: "parcel_api", rail: "auto" });
The hard part isn't the call. It's what's under it.
Agent identity
Each rail issues its own agent-scoped credential with a different lifecycle. The vault holds all three under one agent identity — HSM-backed, single-use issuance, automatic refresh, full revocation on agent termination.
Spend controls
Per-agent caps, merchant allowlists, category limits, time windows, and human-approval thresholds — authored once, compiled down to each rail's native control primitives so enforcement happens at the network, not in our code.
Rail selection
Chooses on transaction size, merchant acceptance, settlement speed, and fee. Sub-dollar machine-to-machine goes to x402. Consumer-facing purchases go to a card rail. Automatic failover when a rail degrades.
We're not pitching this. We need it.
I run Spatial Web Inc.— four entities built from zero covering 3D capture, virtual tours, and AI property intelligence. Our leasing agent already takes a renter from a 3D tour to a completed rental application. The last step of that flow is a payment an agent has to make on someone's behalf, under a spend limit, with a cancel path. That is exactly the primitive AWaaS provides. We are our own first integration and our own first volume.
Neutrality is the moat.Visa will not build an abstraction that routes to Mastercard. Mastercard will not build one that routes to Visa. Coinbase does not touch cards, and Stripe's economics are bound to the card networks. A credibly neutral layer can only be built by a party with no rail to protect.
Distribution is the wedge. Most agentic-payment infrastructure has no transactions to run through it. We have a vertical with real inventory, real intent, and a payment moment we already control end to end.
Volume first, SDK second, platform third.
In-tour application fees
Payment capture inside the 3D tour at peak renter intent, behind the wallet interface. Card rail first so it ships this month; the abstraction means the rail underneath is swappable.
Second rail, second transaction type
x402 adapter for per-call property-data spend, plus refundable holding deposits using the authorize/cancel path. Two rails and two transaction shapes running on our own volume.
Design-partner SDK
TypeScript and Python packages opened to a small set of vertical-agent teams. Policy dashboard, audit log, sandbox. Priced on transaction volume.
Third rail and enterprise controls
Mastercard Agent Pay adapter, natural-language policy compiler, SOC 2 Type II. General availability for teams building agents that spend.
Building an agent that needs to spend?
We're taking a small number of design partners onto the SDK alongside our own volume. If your agent has a real transaction moment, we want to route it.