Cloudflare shipped two products, and the distinction between them matters for any developer integrating today:
| Component | Status | What You Can Do |
|---|---|---|
| cloudflare.pay handles | ✅ Live | Claim a human-readable identity like research.example.cloudflare.pay. This maps an Ed25519 keypair (from Web Bot Auth) to a DNS-style name. Agents present this in x402 payment headers. |
| Account Wallets | ✅ Live | Create a treasury wallet in your Cloudflare dashboard. Fund with USD, hold USDC. Set budgets and spending policies. |
| Virtual Wallets | ✅ Live | Issue per-agent API keys with spending limits, merchant allowlists, and per-transaction caps. Agents see only the budget, not the full balance. |
| x402 Facilitator (x402.org) | ✅ Live | Public /verify and /settle endpoints at https://x402.org/facilitator. Accepts x402 payment payloads, verifies signatures, settles onchain. Used by minia2a and other marketplaces today. |
| Payment execution (funding + spending) | ⚠ Coming soon | The actual "send USDC from my wallet to a merchant" flow. Cloudflare says on/off-ramps and stablecoin funding will roll out "in supported geographies." No GA date announced. |
| Monetization Gateway GA | ⚠ Waitlist | Seller-side: gate your API behind x402 at the CDN edge. Waitlist-only since July 1. No general availability date. |
Cloudflare's agent payment stack has four layers. Here's what each one does and who owns it:
┌─────────────────────────────────────────────────────┐
│ LAYER 1: IDENTITY — cloudflare.pay │
│ research.example.cloudflare.pay │
│ Maps Ed25519 keypair → human-readable name │
│ "Who is this agent and which org owns it?" │
├─────────────────────────────────────────────────────┤
│ LAYER 2: WALLET — Account + Virtual Wallets │
│ Fund with USD → hold USDC → delegate to agents │
│ Guardrails: spend cap, merchant allowlist, tx max │
│ "How much can this agent spend and where?" │
├─────────────────────────────────────────────────────┤
│ LAYER 3: PAYMENT RAIL — x402 Protocol │
│ HTTP 402 Payment Required → PAYMENT-SIGNATURE │
│ Stablecoin micropayments in ~2s at CDN edge │
│ "Move value from buyer to seller, no accounts" │
├─────────────────────────────────────────────────────┤
│ LAYER 4: DISCOVERY — Marketplaces & Catalogs │
│ minia2a, Coinbase Bazaar, x402watch, MoltMart │
│ "What APIs exist and which should I pay for?" │
└─────────────────────────────────────────────────────┘
Layers 1–3 are built by Cloudflare and the x402 Foundation. Layer 4 is the open battleground — and it's where minia2a operates.
The x402 facilitator is the bridge between the HTTP 402 protocol and on-chain settlement. When a seller (like minia2a) receives a payment from a buyer's agent, it doesn't need to run its own blockchain node — it calls the facilitator's REST API.
# 1. Agent requests a paid API
GET /x402/gas HTTP/1.1
Host: minia2a.uk
# 2. Server responds: pay me
HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiYmFzZSIsImFtb3VudCI6IjUwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsImZhY2lsaXRhdG9yIjoiaHR0cHM6Ly94NDAyLm9yZy9mYWNpbGl0YXRvciIsImRlc2NyaXB0aW9uIjoiVVNEQyBvbiBCYXNlIOKAlCBDbG91ZGZsYXJlIFdhbGxldHMgKGNsb3VkZmxhcmUucGF5IGhhbmRsZXMgZm9yIEFJIGFnZW50cykifV19...
# 3. Agent's client builds payment payload, signs with CF Wallet key
# Resends with PAYMENT-SIGNATURE header
# 4. minia2a calls facilitator to verify
POST https://x402.org/facilitator/verify
Content-Type: application/json
{
"paymentPayload": { "scheme": "exact", "networkId": "eip155:8453", ... },
"paymentRequirements": { "amount": "5000", "asset": "0x833...", ... }
}
# 5. Facilitator verifies on-chain signature, returns:
{ "isValid": true }
# 6. minia2a fulfills the request, then settles:
POST https://x402.org/facilitator/settle
Content-Type: application/json
{
"paymentPayload": { ... },
"paymentRequirements": { ... }
}
# 7. Facilitator submits on-chain, returns settlement TX:
{ "success": true, "transaction": "0x..." }
# 8. minia2a returns the API response + settlement proof
HTTP/1.1 200 OK
PAYMENT-RESPONSE: eyJzdWNjZXNzIjp0cnVlLCJ0cmFuc2FjdGlvbiI6IjB4Li4uIn0=
The x402.org facilitator endpoints are live and accept requests right now:
# Test /verify (expects real payload, returns descriptive error)
curl -s -X POST https://x402.org/facilitator/verify \
-H 'Content-Type: application/json' \
-d '{}'
# Response:
# {"isValid":false,"invalidReason":"missing_parameters",
# "invalidMessage":"Missing paymentPayload or paymentRequirements"}
# Test /settle (same)
curl -s -X POST https://x402.org/facilitator/settle \
-H 'Content-Type: application/json' \
-d '{}'
# Response:
# {"success":false,"errorReason":"missing_parameters",
# "errorMessage":"Missing paymentPayload or paymentRequirements"}
https://x402.org/facilitator returns 404 (no landing page), but the API endpoints /verify and /settle are functional. This is the public development/testnet facilitator. For production, Cloudflare recommends using your own facilitator or a managed provider.
minia2a added CF Wallets as a payment option in its x402 challenge responses. When an agent hits a paid endpoint without payment, the 402 response now includes Cloudflare Wallets as an accepted payment method alongside Base, Solana, Polygon, Celo, and other networks.
Here's what the integration looks like in practice:
// In minia2a's x402.js — the NETWORKS registry includes CF Wallets:
const NETWORKS = {
// ... other networks ...
cloudflare: {
name: 'cloudflare',
caip2: 'eip155:8453', // Uses Base chain
chainId: 8453,
usdc: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
facilitator: process.env.FACILITATOR_CLOUDFLARE
|| 'https://x402.org/facilitator',
rpc: cfg.RPC,
explorer: 'https://basescan.org/tx/',
}
};
// The 402 challenge advertises CF Wallets as an accepted payment method:
accepts.push({
scheme: 'exact',
network: NETWORKS.cloudflare.name,
amount: amount,
asset: NETWORKS.cloudflare.usdc,
payTo: cfg.PLATFORM_WALLET,
facilitator: NETWORKS.cloudflare.facilitator,
description: 'USDC on Base — Cloudflare Wallets (cloudflare.pay handles)',
mimeType: 'application/json',
maxTimeoutSeconds: 120,
extra: { name: 'Cloudflare Wallets', version: '2' }
});
This means any agent with a Cloudflare Wallet can already negotiate payment with minia2a's 299 services. The 402 handshake works. The facilitator verifies and settles. The missing piece is the agent-side wallet funding — which Cloudflare is rolling out.
minia2a doesn't lock into one payment provider. Here's the full facilitator lineup as of August 2026:
| Network | Facilitator | Status |
|---|---|---|
| Base | facilitator.payai.network (PayAI) | Production |
| Base (CDP) | api.cdp.coinbase.com/platform/v2/x402 | Production |
| Base (Dexter) | x402.dexter.cash | Production |
| Base (Cloudflare) | x402.org/facilitator | Live (public) |
| Celo | x402.celo.org | Production |
| Solana | facilitator.pincerpay.com/v1 | Production |
| Polygon | x402.polygon.technology | Production |
| Algorand | facilitator.goplausible.xyz | Production |
| Circle | gateway-api.circle.com/v1/x402 | Production |
Cloudflare's entry adds a ninth facilitator option. For developers, this means more choice in where settlement happens — but also more fragmentation in the discovery layer. Agents need to know which services accept which facilitators.
/x402/gas) and inspect the PAYMENT-REQUIRED header — you'll see Cloudflare Wallets listed as an accepted payment method. The protocol negotiation works today.# See CF Wallets in a real 402 challenge right now:
curl -s -D - 'https://minia2a.uk/x402/gas?probe=1' 2>&1 | head -20
# The PAYMENT-REQUIRED header will include:
# "facilitator":"https://x402.org/facilitator"
# "description":"USDC on Base — Cloudflare Wallets (cloudflare.pay handles for AI agents)"
accepts entry pointing to https://x402.org/facilitator in your 402 challenge responses.@x402/fetch wrapper and Cloudflare Agents SDK mention wallet support, but code examples for "agent with CF Wallet pays for API" don't exist yet. The integration path is: agent → Virtual Wallet API key → x402 fetch → facilitator settlement. Each step is documented separately; no end-to-end tutorial exists.Cloudflare Wallets is real infrastructure, not a press release. The x402 facilitator endpoints work today. The wallet architecture (Account → Virtual, with guardrails) is well-designed. The cloudflare.pay identity standard solves a real problem (agents need persistent, verifiable identities for payment).
But it's not done. The gap between "I have a CF Wallet" and "my agent paid for an API with it" still requires third-party facilitators and pre-funded USDC. Cloudflare will close that gap — the question is when.
For developers: claim your handle, test the 402 flow, use existing facilitators for real payments, and be ready when the funding rails go live. The protocol layer is solid. The wallet layer is designed. The missing piece is execution — and that's the easiest part to ship.