x402 Protocol
How Concierge uses HTTP 402 for machine-to-machine USDC payments.
Concierge does not issue API keys. Payment is the gate — agents and browsers pay USDC per request using x402 v2, settled through PayAI (primary) with Dexter as fallback facilitator. Dexter settlements auto-list on OpenDexter.
Flow
402 + PAYMENT-REQUIRED
First POST without payment returns requirements (network, asset, amount, payee).
Sign USDC transfer
Wallet or x402 client signs the transfer to the listed payTo address.
PAYMENT-SIGNATURE retry
Repeat the request with header PAYMENT-SIGNATURE (base64 JSON payload).
200 + PAYMENT-RESPONSE
Server verifies and settles; response includes settlement metadata.
Supported chains
- Base — USDC (configure
X402_EVM_PAY_TO) - Solana — USDC via PayAI/Dexter (optional
X402_SOL_PAY_TO) - Solana — native project tokens via Token Pay self-settle (one accept per live merchant;
extra.settlement: "self") - SOON — Concierge default merchant; appears when
SOON_TOKEN_MINTis set (UI: coming soon until launch)
Check accepts in the 402 body or GET /api/x402-config / GET /api/token-pay for enabled merchants. Beta partners register via Token Pay onboarding.
Headers
| Header | Direction | Purpose |
|---|---|---|
PAYMENT-REQUIRED | Response (402) | Payment requirements (base64 JSON) |
PAYMENT-SIGNATURE | Request | Signed payment proof |
PAYMENT-RESPONSE | Response (200) | Settlement receipt |
Marketplace probes
GET on paid routes also returns 402 so x402scan, MPPscan, and AgentCash can discover pricing without a body.
Registries: x402scan.com · MPPscan (Concierge Agent)
Fan-out: /.well-known/x402 lists all paid resources. Bazaar extensions on 402 include input and output JSON schemas.
Concierge · Executive Lounge