Protocol first
Stamp a claim in-spec only when Foundation docs or scheme specs support it. Provider pages stay provider-shaped.
The Spec Desk
x402 is an open HTTP payment protocol that gives the reserved 402 status a concrete handshake. A resource server returns PAYMENT-REQUIRED with machine-readable terms. A client retries with PAYMENT-SIGNATURE. The server or a facilitator verifies and settles. PAYMENT-RESPONSE reports the outcome. The protocol is not a wallet, blockchain, processor, or standard browser paywall. Current work uses v2 header names and CAIP-2 network identifiers. Copying X-PAYMENT or base-sepolia examples treats v1 as current. Step-by-step tutorials belong at x402academy.com.
Updated 2026-09-19. Independent field guide, not an official x402 Foundation page. Tutorials:x402academy.com.
Characteristic interaction
Pick a surface. The blotter splits current behavior from boundaries. Keyboard: left and right change folders, up and down move cards, Enter pins a card.
Handshake: 4 cards
Handshake
The protocol is a small HTTP loop. The nuance is in the objects, not in a hidden account system.
Headers
v2 moved payment data into three Base64 JSON headers. Older X-PAYMENT examples still rank in search.
Schemes
A scheme is pricing semantics. It is not a chain, a facilitator, or a refund desk.
Networks
CAIP-2 identifiers removed local aliases. Protocol support is not the same as a production facilitator.
Facilitators
A facilitator is optional infrastructure. It is not a custodian and not a default mainnet service.
HTTP 402
x402 gives the reserved status a payment shape. It does not give browsers a universal paywall.
Identity
The protocol can skip account signup. Identity, abuse controls, and fiat wrapping remain product choices.
Agents
Agents use the same handshake as any other client. Policy and keys stay in trusted runtime code.
House rules
Stamp a claim in-spec only when Foundation docs or scheme specs support it. Provider pages stay provider-shaped.
X-PAYMENT, x402-express, and base-sepolia are migration fossils. They are shown here so they are not copied as today’s handshake.
exact, upto, and batch-settlement are the advertised scheme trio. Other families exist in the spec tree; they are not defaults.
This desk is a field guide for what the protocol is. Seller and buyer walkthroughs belong at x402academy.com.
Field notes
The desk above is the inspection UI. The notes below are the same claims in reading order, with primary sources attached, so a crawler or a no-script reader gets the current protocol rather than a v1 gist.
Handshake
The protocol is a small HTTP loop. The nuance is in the objects, not in a hidden account system.
A client asks for a paid HTTP resource. If no acceptable payment is attached, the server returns 402 with machine-readable requirements. The client signs a scheme-specific payload and retries. The server verifies, settles according to the scheme, and returns the resource with settlement feedback.
Source: Welcome to x402 — x402 Foundation Docs
Guide: The HTTP 402 Flow
The Foundation introduction describes x402 as a way for services to charge for APIs and content over HTTP without accounts, sessions, or credential management as part of the protocol. Buyers and sellers still choose wallets, facilitators, and product policy around that handshake.
Source: Welcome to x402 — x402 Foundation Docs
Guide: What Is x402?
x402 is a transport-level payment handshake plus reference SDKs. It does not move value by itself, hold balances, issue cards, or render a paywall. Implementations still choose networks, assets, signers, facilitators, refund policy, and user experience.
Source: Welcome to x402 — x402 Foundation Docs
Guide: What Is x402?
The current introduction states that x402 as a standard has no fees built in. Gas, facilitator pricing, and seller overhead are outside that claim. Do not quote “fee-free” as a network or provider fact without checking that provider.
A facilitator or chain fee is not a protocol fee. Name the layer before you name the cost.
Source: Welcome to x402 — x402 Foundation Docs
Headers
v2 moved payment data into three Base64 JSON headers. Older X-PAYMENT examples still rank in search.
v2 uses three headers, each a Base64-encoded JSON string. PAYMENT-REQUIRED is the server offer. PAYMENT-SIGNATURE is the client authorization. PAYMENT-RESPONSE is settlement or error feedback. New integrations should treat those names as the target.
PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSEX-PAYMENT / X-PAYMENT-RESPONSESource: HTTP 402 — x402 Foundation Docs
Guide: x402 Header Format
The migration guide maps v1 X-PAYMENT to v2 PAYMENT-SIGNATURE, and v1 X-PAYMENT-RESPONSE to v2 PAYMENT-RESPONSE. v2 also adds PAYMENT-REQUIRED for the 402 offer. Facilitators may still speak both versions during migration; new servers should not emit legacy names unless they have an explicit compatibility requirement.
req.header("PAYMENT-SIGNATURE")req.header("X-PAYMENT")A 402 loop after “I attached payment” is often a v1 client talking to a v2 server, or the reverse.
Source: Migration Guide: V1 to V2 — x402 Foundation Docs
Guide: v1 to v2 Migration
The HTTP 402 page is explicit: whether funds move onchain in the same HTTP round trip depends on the scheme. exact and upto typically settle immediately. batch-settlement confirms authorization up front and redeems later according to the network binding.
Source: HTTP 402 — x402 Foundation Docs
Guide: Payment Schemes
v1 objects carry x402Version: 1. v2 objects carry x402Version: 2. A decoder that only looks at JSON validity will accept both. A current client should reject or migrate version 1 rather than treat it as today’s handshake.
x402Version: 2x402Version: 1Source: Migration Guide: V1 to V2 — x402 Foundation Docs
Guide: v1 to v2 Migration
Schemes
A scheme is pricing semantics. It is not a chain, a facilitator, or a refund desk.
exact is the fixed-price scheme: the buyer authorizes the advertised amount, and the payment must match it. The FAQ notes that exact requires strict equality — no overpayment or underpayment. It fits paid articles, deterministic API calls, and one-off files.
exact is a push payment. Refunds are a new business transfer or a different scheme, not an automatic chargeback.
Source: Payment Schemes — x402 Foundation Docs
Guide: Payment Schemes
upto is for single-request usage billing. The buyer authorizes a maximum; the seller charges actual usage up to that ceiling. The current FAQ lists TypeScript, Go, and Python support on EVM. The authorized maximum is a safety bound, not a suggested price.
Source: Payment Schemes — x402 Foundation Docs
Guide: Payment Schemes
The current scheme overview documents batch-settlement for high-volume or repeated micropayments. The buyer deposits once, signs off-chain vouchers per request, and sellers redeem in batches. Per-request pricing still uses an up-to ceiling. The FAQ lists TypeScript and Go today, with Python planned.
Source: Payment Schemes — x402 Foundation Docs
Guide: Payment Schemes
The live Foundation scheme overview documents exact, upto, and batch-settlement. auth-capture exists in the v2 spec tree and in the TypeScript EVM SDK as a delayed-capture / refundable family. Do not copy it as a production default until the installed SDK and facilitator actually register it.
A GitHub scheme file is evidence that a scheme exists. It is not evidence that every facilitator, network, or tutorial supports it today.
Source: Payment Schemes — x402 Foundation Docs
Guide: Payment Schemes
Current scheme docs name three payment flows: authorization (verify before the handler, settle after), upfront (settle before the handler), and escrow (settle before and after). exact can opt into upfront via extra.paymentFlow. upto and batch-settlement currently support authorization only. Clients must skip a flow they do not recognize.
Source: Payment Schemes — x402 Foundation Docs
Guide: Payment Schemes
Networks
CAIP-2 identifiers removed local aliases. Protocol support is not the same as a production facilitator.
v2 uses namespace:reference identifiers so clients can compare networks against policy without local nicknames. Base is eip155:8453. Base Sepolia is eip155:84532. Solana uses genesis-hash identifiers. The protocol page also documents TON, Algorand, Stellar, Aptos, Hedera, Keeta, NEAR, Concordium, XRPL, and Cardano forms.
eip155:84532base-sepoliaSource: Networks & Token Support — x402 Foundation Docs
Guide: Networks and Assets
The migration table is the current map: base-sepolia becomes eip155:84532, base becomes eip155:8453, solana-devnet and solana become the Solana CAIP-2 genesis hashes. A v2 payment that still says network: "base-sepolia" is a leftover, not a dialect.
network: "eip155:8453"network: "base"Source: Migration Guide: V1 to V2 — x402 Foundation Docs
Guide: v1 to v2 Migration
The networks page separates three questions: protocol support (can x402 express the payment), runtime support (can your server register the scheme), and production support (do you have a facilitator, self-hosted facilitator, or self-facilitation path). Any eip155 chain can be named. Settlement still needs a path.
Source: Networks & Token Support — x402 Foundation Docs
Guide: Networks and Assets
Dollar-string pricing uses the chain’s configured default stablecoin. On chains without a default, sellers specify a TokenAmount with atomic units and an asset identifier. Custom ERC-20s also need EIP-712 name and version where that transfer method applies.
Source: Networks & Token Support — x402 Foundation Docs
Guide: Networks and Assets
Facilitators
A facilitator is optional infrastructure. It is not a custodian and not a default mainnet service.
A facilitator verifies payloads against requirements and can submit settlement onchain. The current facilitator page says it does not hold funds or act as a custodian. The resource server still decides which offers to accept and whether a failed settlement blocks the response.
Source: Facilitator — x402 Foundation Docs
The public x402.org facilitator is the package default for development. Current network docs list it as testnet-only: Base Sepolia, Solana Devnet, Stellar Testnet, Aptos Testnet, Hedera Testnet, and XRPL Testnet. It does not support Base mainnet. Mainnet needs a production facilitator, a self-hosted one, or self-facilitation.
Changing only the network field from eip155:84532 to eip155:8453 while keeping https://x402.org/facilitator is a documented failure mode.
Source: Networks & Token Support — x402 Foundation Docs
When a settlement is broadcast but confirmation cannot be established, current facilitator docs describe a non-terminal settlement_pending result carrying the transaction hash. The resource server retries settlement once and reconciles against the already-broadcast hash. This applies to exact, upto, and batch-settlement on EVM and SVM in v2.
Source: Facilitator — x402 Foundation Docs
Solana RPC can report success for a duplicate submission because the network deduplicates at consensus. A client could otherwise buy two resources with one payment. Current docs describe a short-lived SettlementCache, with entries evicted after about 120 seconds. Merchants who settle Solana themselves must implement equivalent detection.
Source: Facilitator — x402 Foundation Docs
Servers can verify and settle locally. Facilitators are recommended because they hide chain-specific verification, but they are a deployment choice. Self-facilitation is one of the three paths in the current facilitator page, alongside the public testnet facilitator and a managed production provider.
Source: Facilitator — x402 Foundation Docs
HTTP 402
x402 gives the reserved status a payment shape. It does not give browsers a universal paywall.
In x402, HTTP 402 tells the client that payment is required and carries the details needed to pay programmatically: scheme, amount, asset, network, destination. That is the whole point of filling the reserved status. A human-readable paywall sentence is not a substitute for PAYMENT-REQUIRED.
Source: HTTP 402 — x402 Foundation Docs
Guide: The HTTP 402 Flow
RFC 9110 still records 402 as reserved for future use. x402 is an application of that reserved code, not a change to HTTP itself. Implementations that assume every user agent will know what to do with 402 are reading a protocol into the browser.
Source: RFC 9110: HTTP Semantics, Section 15.5.3 — IETF / RFC Editor
Guide: What Is x402?
MDN notes that no standard browser handling exists for 402. A generic user agent treats it as a 4xx. x402 therefore depends on SDK-aware clients, wallets, agents, CLIs, or application-specific paywall packages such as @x402/paywall — not on a built-in browser wallet sheet.
Source: 402 Payment Required — MDN Web Docs
Guide: The HTTP 402 Flow
Identity
The protocol can skip account signup. Identity, abuse controls, and fiat wrapping remain product choices.
The client/server page describes the interaction as stateless HTTP. Clients do not need protocol accounts or session tokens beyond a signer. That is why agents can buy a single call. It is also why sellers who still need identity must add it themselves.
Source: Client / Server — x402 Foundation Docs
The FAQ asks “why not just use API keys” and answers with friction, not with a ban on keys. Payment can be separated from identity. Rate limits, revocation, entitlements, invoices, seats, and support still need an account plane when the product needs one. x402 is a commercial primitive for a request, not a CRM.
Source: FAQ — x402 Foundation Docs
Sign-In-With-X is an extension, not the core handshake. It uses CAIP-122 wallet authentication so a client can access previously purchased content without repeating the payment flow. If a 402 response has no SIWX data, a current client should pay or stop — not invent a session.
Source: Sign-In-With-X (SIWX) — x402 Foundation Docs
Guide: Client and Agent Guide
The FAQ states that x402 does not natively support fiat off-ramps or credit-card deposits. Facilitators or third-party gateways can wrap those rails. The v2 launch post describes facilitators for ACH, SEPA, or cards as fitting the same payment model; that is a facilitator product claim, not a protocol guarantee.
Source: FAQ — x402 Foundation Docs
Agents
Agents use the same handshake as any other client. Policy and keys stay in trusted runtime code.
The FAQ is blunt: agents request, parse PAYMENT-REQUIRED, choose a requirement and sign, then retry with PAYMENT-SIGNATURE. They need some signing authority — a wallet, delegated wallet, or chain-specific signer. The production question is the policy wrapped around that signer.
Source: FAQ — x402 Foundation Docs
Guide: Client and Agent Guide
An MCP server can call a paid endpoint with an x402-aware HTTP client, handle the 402, and return only the tool result to the model. The Foundation docs include an MCP guide. The model asks for a capability; the server enforces budget, host allowlist, and audit. Private keys do not belong in prompts.
Source: x402 Foundation Repository — GitHub
Guide: MCP and Agent Commerce
Bazaar is the discovery extension: a machine-readable catalog of x402 endpoints and MCP tools. Catalog indexing is a facilitator implementation detail, not something the OSS repo controls. A service that settles payments but never appears in a catalog has a facilitator/catalog problem, not proof that x402 failed.
Source: Bazaar (Discovery Layer) — x402 Foundation Docs
Guide: MCP and Agent Commerce
A valid signature can still be a bad purchase. Current buyer guidance assumes the client evaluates scheme, network, asset, amount, destination, and policy before signing. This field guide does not teach agent checkout. Step-by-step seller and buyer tutorials belong at x402academy.com.
A hot key with no spend cap will drain itself through perfectly valid x402 messages.
Source: Quickstart for Buyers — x402 Foundation Docs
x402 is an open protocol that lets an HTTP resource quote a price, receive a signed payment payload, verify or settle that payload, and then serve the resource. It uses the reserved 402 status as the challenge.
PAYMENT-REQUIRED from server to client, PAYMENT-SIGNATURE from client to server, and PAYMENT-RESPONSE from server to client. Each value is Base64-encoded JSON. X-PAYMENT is the v1 name.
Header names, CAIP-2 network identifiers, x402Version: 2, and modular @x402 packages. Friendly network strings such as base-sepolia and packages such as x402-express are the v1 map.
No. It can remove account signup for a pay-per-request resource. Identity, quotas, revocation, invoices, and bundled support remain product choices and often still use keys or subscriptions.
The live Foundation overview documents exact, upto, and batch-settlement. auth-capture exists in the spec tree and TypeScript EVM SDK but is not the advertised default trio.
Yes. An MCP server can wrap an x402 client, enforce wallet policy, and hide signatures from the model. Discovery catalogs are an extension, not a guarantee that every paid route is indexed.
If you need a seller or buyer walkthrough, use x402academy.com. This page is the current-protocol field guide: what x402 does, what it does not, and which leftover examples to refuse.