x402 Protocol
How Concierge uses HTTP 402 for machine-to-machine stablecoin payments.
Concierge does not issue API keys. Payment is the gate — agents and browsers pay per request using x402 v2, settled through PayAI (primary) with Dexter as fallback facilitator. Dexter settlements auto-list on OpenDexter. BNB USDT and USDC use Dexter Permit2 when X402_BNB_ENABLED=true.
Flow
402 + PAYMENT-REQUIRED
First POST without payment returns requirements (network, asset, amount, payee).
Sign transfer
Wallet or x402 client signs the transfer to the listed payTo address (BNB may require a one-time Permit2 approval).
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) - Arbitrum — USDC (same EVM pay-to; disable with
X402_ARBITRUM_ENABLED=false) - Robinhood Chain — USDG via Primer (
eip155:4663) - BNB Smart Chain — USDT or USDC via Dexter Permit2 (
eip155:56, 18 decimals; enable withX402_BNB_ENABLED=true) - 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") - TCX — Concierge default merchant; live when
SOON_TOKEN_MINTis set (mintF2bnJW1z55UQ9ZqGX5RwYQfvNJrd23n66eyBV5QZpump)
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.
Verified registries: x402scan · MPPscan
Fan-out: /.well-known/x402 lists all paid resources. Bazaar extensions on 402 include input and output JSON schemas.
Concierge · Executive Lounge