Skip to main content
x402 is a payment protocol built on HTTP status code 402 Payment Required — a code in the HTTP spec since the 1990s, finally put to use. It lets agents pay for API access with stablecoins per-request, with no subscriptions or API keys required.

Payment flow

1

Your agent makes a request

Your agent sends a standard HTTP request to an API endpoint, just like any other API call.
2

The server responds with 402 Payment Required

Instead of returning data, the server responds with a 402 status code and includes payment requirements in the PAYMENT-REQUIRED header: how much it costs, which token, and on which network.
3

Your agent pays

Your agent’s wallet constructs a signed payment payload and resubmits the request with a PAYMENT-SIGNATURE header. No human approval needed.
4

The server delivers the data

The server verifies the payment via a facilitator, settles onchain, and returns the requested data. The entire flow takes seconds.
Any agent with a funded wallet can pay for any x402-enabled API — no pre-existing relationship or account required. Learn more about x402 →

Making x402 requests

CDP Agentic Wallet

With the CDP Agentic Wallet skills installed, your agent handles x402 payments automatically:
Terminal
npx skills add coinbase/agentic-wallet-skills
Then ask your agent to discover and call a paid service:
Find APIs for sentiment analysis
Call that weather API and get the forecast for New York
The search-for-service and pay-for-service skills handle discovery, payment, and retries. CDP Agentic Wallet skills →

Sponge Wallet

Sponge Wallet has a built-in x402 proxy that discovers services and handles payment automatically: Step 1 — Discover a service:
Terminal
curl "https://api.wallet.paysponge.com/api/discover?query=weather+forecast" \
  -H "Authorization: Bearer $SPONGE_API_KEY" \
  -H "Sponge-Version: 0.2.1"
Step 2 — Get service details (required — do not skip):
Terminal
curl "https://api.wallet.paysponge.com/api/discover/{serviceId}" \
  -H "Authorization: Bearer $SPONGE_API_KEY" \
  -H "Sponge-Version: 0.2.1"
This returns the baseUrl, endpoint paths, parameters, and pricing. Step 3 — Call the service (payment is automatic):
Terminal
curl -X POST "https://api.wallet.paysponge.com/api/x402/fetch" \
  -H "Authorization: Bearer $SPONGE_API_KEY" \
  -H "Sponge-Version: 0.2.1" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://{baseUrl}/{endpointPath}",
    "method": "POST",
    "body": { "query": "New York" },
    "preferred_chain": "base"
  }'
Sponge detects the 402, pays in USDC from your wallet, and returns the API response. Sponge Wallet docs →

Supported networks and tokens

NetworkTokenNotes
BaseUSDCDefault — lowest fees
Base SepoliaUSDCTestnet
SolanaUSDCVia CDP facilitator
PolygonUSDCVia CDP facilitator

Error handling and retries

StatusMeaningWhat to do
402Payment requiredParse PAYMENT-REQUIRED header and pay
402 with X-Payment-ErrorPayment rejectedCheck wallet balance and token approval
408Payment timeoutRetry with same or higher payment
429Rate limitBack off and retry after the indicated delay
The CDP Agentic Wallet pay-for-service skill and Sponge Wallet’s x402 proxy handle retries automatically. If you’re building a custom client, parse the PAYMENT-REQUIRED header, construct the signed payload, and retry with the PAYMENT-SIGNATURE header.

Accepting payments

Gate your own endpoints and charge other agents per request.

Contract addresses

Facilitator endpoints and protocol addresses.