Simple Base SwapSimple Base SwapOpen app
← All articles
Sep 23, 2026·5 min read

What Is x402, and How Do Agent Payments Work on Base?

baseusdcx402guidesbeginners
base

If you have read about "AI agents paying each other" or seen the number 402 mentioned next to Base and USDC, it is probably about x402. It is not a token, and it is not something you buy. It is an open payment protocol, and a growing amount of it settles on Base. Here is what it actually does, in plain terms.

The idea behind the name

The web has had a spare HTTP status code sitting unused since the 1990s: 402, "Payment Required." It was reserved for exactly this kind of use, but nothing built on it for decades because there was no easy way for a server to actually collect a payment inside an HTTP request. x402 is what finally uses that status code for its intended purpose. Coinbase released it in 2025, and it is now developed as an open standard co governed with Cloudflare through the x402 Foundation, not a closed Coinbase product.

What problem it solves

Most software that charges for access, an API, a dataset, a single AI model call, relies on accounts, saved cards, and subscriptions set up in advance by a human. That works fine for people, but it breaks down for software agents that need to pay for small things on their own, one request at a time, without a person clicking through a checkout first. x402 lets a server say "this costs $0.001 in USDC" directly in its response, and lets the requesting software pay it and get the resource back, all within the same HTTP exchange.

How a payment actually happens

The flow has three steps:

  1. A client, which could be an AI agent, a script, or any app, requests a resource from an x402 enabled server. Instead of returning the data, the server replies with an HTTP 402 status and a small JSON description of what it costs and where to send it.
  2. The client's wallet signs a payment authorization offline and attaches it to a repeated request, this time with the signed payload included as an HTTP header rather than typed into a checkout form.
  3. A separate service called a facilitator checks that the signature is valid and the funds exist, then submits the transfer onchain and confirms it. Once that confirmation comes back, the server returns the actual resource.

Nothing about this skips how Base works. The payment is a real, signed authorization, and it settles as a real onchain USDC transfer, the same kind covered in our USDC on Base article. What changes is that the request and the payment travel together over plain HTTP instead of through a separate app.

Why it has to be USDC, not any token

The signature a wallet produces is not an ordinary transaction, it is an EIP-712 typed data signature, the same standard covered in our EIP-712 signing article, calling a specific function called transferWithAuthorization. That function comes from a token standard called EIP-3009, and it is what lets the facilitator submit the transfer on the payer's behalf without the payer first granting a separate token approval or holding ETH for gas. USDC and EURC support this function natively, which is a large part of why x402 payments on Base settle in USDC specifically rather than an arbitrary ERC-20 token. It is a close cousin of the permit pattern covered in our permit signatures article, built for a slightly different job.

What the facilitator can and cannot do

The facilitator is a piece of infrastructure that checks and submits payments, it is not custody. It never holds your USDC and cannot spend more than the specific, time bounded authorization you signed. That said, it is still a service you are trusting to behave correctly and settle honestly, similar to the trust placed in a paymaster in our gasless transactions article. Multiple facilitators exist and more are being built, which is a healthier setup than relying on a single operator, but it is worth knowing that a facilitator sits in the middle of every x402 payment.

Why this matters even if you are not building an agent

You may never write software that uses x402 directly, but the protocol is quietly becoming one of the reasons USDC on Base sees real, repeated, machine driven transaction volume rather than only human swaps and transfers. If you hold USDC in a Base wallet, you are holding the same asset that increasingly moves through this system in the background. It is also a useful reminder that a signature request is a signature request no matter what triggered it. If an app on your device ever asks you to sign a payment authorization you do not recognize the context for, the same caution from our wallet signature requests article applies here too.

The takeaway

x402 is a real, working standard for letting software pay for small things over HTTP, using USDC settled on Base, without accounts or manual checkout. It does not change what a signature means or what happens once you approve one, it just gives software a faster way to trigger that same process. As with anything that automates signing, the fundamentals stay the same: know what you are authorizing, and treat any authorization request the same way you would treat one you approved by hand.

If you would rather hold your USDC in a wallet built for exactly one network, with nothing hidden about what a transaction does, Simple Base Swap is a self custody wallet for Base. Start at app.simplebaseswap.com, or grab the iOS or Android app.

Ready to try it yourself?

Create a non-custodial wallet on Base in seconds. No account, no sign-up.

Open the web app