Payment

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_MINT is 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

HeaderDirectionPurpose
PAYMENT-REQUIREDResponse (402)Payment requirements (base64 JSON)
PAYMENT-SIGNATURERequestSigned payment proof
PAYMENT-RESPONSEResponse (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