coinbase/x402 is a Frontend project on GitHub, written primarily in TypeScript. It has 144 stars. A payments protocol for the internet. Built on HTTP.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Note: We've moved the x402 repo under the x402 Foundation repo. All issues and PRs were transferred here: github.com/x402-foundation/x402
Our repo (coinbase/x402) is now a development fork.
x402
x402 is an open standard for internet native payments. It aims to support all networks (both crypto & fiat) and forms of value (stablecoins, tokens, fiat).
app.use(
paymentMiddleware(
{
"GET /weather": {
accepts: [...], // As many networks / schemes as you want to support
description: "Weather data", // what your endpoint does
},
},
),
);
// That's it! See examples/ for full details
Installation
Typescript
See all the packages available in the Typescript SDK, including chain implementations of x402, code examples and integration guides.
# Minimal express Server
npm install @x402/core @x402/evm @x402/svm @x402/express
Python
See the python/x402 folder for code examples and integration guides.
pip install x402
Go
See the go/ folder for code examples and integration guides.
go get github.com/x402-foundation/x402/go
Principles
Open standard: x402 is an open standard, freely accessible and usable by anyone. It will never force reliance on a single party.
HTTP / Transport Native: x402 is meant to seamlessly complement existing data transportation. It should whenever possible not mandate additional requests outside the scope of a typical client / server flow.
Network, token, and currency agnostic: we welcome contributions that add support for new networks (both crypto and fiat), signing standards, or schemes, so long as they meet our acceptance criteria laid out in CONTRIBUTING.md. x402 may extend support to fiat based networks, but will never deprioritize onchain payments in favor of fiat payments.
Backwards Compatible: x402 will not deprecate support for any existing networks unless such removal is deemed necessary for the security of the standard. Whenever possible, x402 will aim for backwards compatibility for non-major version changes.
Trust minimizing: all payment schemes must not allow for the facilitator or resource server to move funds, other than in accordance with client intentions
Easy to use: It is the goal of the x402 community to improve ease of use relative to other forms of payment on the Internet. This means abstracting as many details of crypto as possible away from the client and resource server, and into the facilitator. This means the client/server should not need to think about gas, rpc, etc.
Ecosystem
The x402 ecosystem is growing! Check out our ecosystem page to see projects building with x402, including:
Client-side integrations
Services and endpoints
Ecosystem infrastructure and tooling
Learning and community resources
Want to add your project to the ecosystem? See our demo site README for detailed instructions on how to submit your project.
Roadmap: see ROADMAP.md
Documentation: see docs/ for the GitBook documentation source
Terms:
resource: Something on the internet. This could be a webpage, file server, RPC service, API, any resource on the internet that accepts HTTP / HTTPS requests.
client: An entity wanting to pay for a resource.
facilitator: A server that facilitates verification and execution of payments for one or many networks.
resource server: An HTTP server that provides an API or other resource for a client.
Technical Goals:
Permissionless and secure for clients, servers, and facilitators
Minimal friction to adopt for both client and resource servers
Minimal integration for the resource server and client (1 line for the server, 1 function for the client)
Ability to trade off speed of response for guarantee of payment
Extensible to different payment flows and networks
Specification
See specs/ for full documentation of the x402 standard/
Typical x402 flow
x402 payments typically adhere to the following flow, but servers have a lot of flexibility. See advanced folders in examples/.
The following outlines the flow of a payment using the x402 protocol. Note that steps (1) and (2) are optional if the client already knows the payment details accepted for a resource.
Client makes an HTTP request to a resource server.
Resource server responds with a 402 Payment Required status and a PaymentRequired b64 object return as a PAYMENT-REQUIRED header.
Client selects one of the PaymentRequirements returned by the server response and creates a PaymentPayload based on the scheme & network of the PaymentRequirements they have selected.
Client sends the HTTP request with the PAYMENT-SIGNATURE header containing the PaymentPayload to the resource server.
Resource server verifies the PaymentPayload is valid either via local verification or by POSTing the PaymentPayload and PaymentRequirements to the /verify endpoint of a facilitator.
Facilitator performs verification of the object based on the scheme and network of the PaymentPayload and returns a Verification Response.
If the Verification Response is valid, the resource server performs the work to fulfill the request. If the Verification Response is invalid, the resource server returns a 402 Payment Required status and a Payment Required Response JSON object in the response body.
Resource server either settles the payment by interacting with a blockchain directly, or by POSTing the Payment Payload and Payment PaymentRequirements to the /settle endpoint of a facilitator server.
Facilitator server submits the payment to the blockchain based on the scheme and network of the Payment Payload.
Facilitator server waits for the payment to be confirmed on the blockchain.
Facilitator server returns a Payment Execution Response to the resource server.
Resource server returns a 200 OK response to the Client with the resource they requested as the body of the HTTP response, and a PAYMENT-RESPONSE header containing the Settlement Response as Base64 encoded JSON if the payment was executed successfully.
Schemes
A scheme is a logical way of moving money.
Blockchains allow for a large number of flexible ways to move money. To help facilitate an expanding number of payment use cases, the x402 protocol is extensible to different ways of settling payments via its scheme field.
Each payment scheme may have different operational functionality depending on what actions are necessary to fulfill the payment.
For example exact, the first scheme shipping as part of the protocol, would have different behavior than upto. exact transfers a specific amount (ex: pay $1 to read an article), while a theoretical upto would transfer up to an amount, based on the resources consumed during a request (ex: generating tokens from an LLM).
See specs/schemes for more details on schemes, and see specs/schemes/exact/scheme_exact_evm.md to see the first proposed scheme for exact payment on EVM chains.
Schemes vs Networks
Because a scheme is a logical way of moving money, the way a scheme is implemented can be different for different blockchains. (ex: the way you need to implement exact on Ethereum is very different from the way you need to implement exact on Solana).
Clients and facilitators must explicitly support different (scheme, network) pairs in order to be able to create proper payloads and verify / settle payments.
TopGit's last sync did not record any GitHub topics for coinbase/x402. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on coinbase/x402?
The most recent commit recorded on coinbase/x402 was 7 days ago, based on the GitHub push timestamp. The repository has 181 forks — one of the better signals of community interest.
Is coinbase/x402 open source?
Yes — coinbase/x402 ships under the Apache-2.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/coinbase/x402.
What license does coinbase/x402 use?
coinbase/x402 is released under the Apache-2.0 license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
Where can I see coinbase/x402 in action?
The project maintains a homepage at https://x402.org. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about coinbase/x402?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/coinbase/x402 is the definitive source.
Read full README in the tab above.
Is x402 worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of x402.