Need help? Join the x402 Discord for the latest
updates.
- Makes the initial request (if using Fetch) or intercepts the initial request (if using Axios)
- If a 402 response is received, parses the payment requirements from the
PAYMENT-REQUIREDheader - Creates a payment payload using the configured x402Client and registered schemes
- Retries the request with the
PAYMENT-SIGNATUREheader
Prerequisites
Before you begin, ensure you have:- A crypto wallet with USDC (any EVM-compatible wallet, e.g., CDP Wallet, AgentKit)
- Node.js and npm, Go, or Python and pip installed
- A service that requires payment via x402
We have pre-configured examples available in our
repo, including examples
for fetch, Axios, and MCP.
1. Install Dependencies
- Node.js
- Go
- Python
Install the x402 client packages:
2. Create a Wallet Client
Create a wallet client using CDP’s Server Wallet (recommended) or a standalone wallet library (viem for EVM on Node.js, or Go’s crypto libraries).CDP Server Wallet (Recommended)
First, create an account at cdp.coinbase.com and get the following API keys from the portal to store as environment variables:Node.js
Node.js
Standalone Wallet Libraries
If you prefer to use your own wallet, you can use standalone libraries:EVM (Node.js with viem)
EVM (Go)
EVM (Python)
Install the required package:Solana (SVM)
Use SolanaKit to instantiate a signer:3. Make Paid Requests Automatically
You can automatically handle 402 Payment Required responses and complete payment flows using the x402 helper packages.- Node.js
- Go
- Python (httpx)
- Python (requests)
You can use either
@x402/fetch or @x402/axios:- @x402/fetch
- @x402/axios
@x402/fetch extends the native Features:
fetch API to handle 402 responses and payment headers for you. Full example here- Automatically handles 402 Payment Required responses
- Verifies payment and generates
PAYMENT-SIGNATUREheaders - Retries the request with proof of payment
- Supports all standard fetch options
Multi-Network Client Setup
You can register multiple payment schemes to handle different networks:- TypeScript
- Go
- Python
4. Discover Available Services (Optional)
Instead of hardcoding endpoints, you can use the x402 Bazaar to dynamically discover available services. This is especially powerful for building autonomous agents that can find and use new capabilities.- Node.js
- Go
- Python
Learn more about service discovery in the x402 Bazaar
documentation, including how to filter services, understand
their schemas, and build agents that can autonomously discover new
capabilities.
5. Error Handling
Clients will throw errors if:- No scheme is registered for the required network
- The request configuration is missing
- A payment has already been attempted for the request
- There is an error creating the payment header
Summary
- Install x402 client packages (
@x402/fetchor@x402/axios) and mechanism packages (@x402/evm,@x402/svm) - Create a wallet signer
- Create an
x402Clientand register payment schemes - Use the provided wrapper/interceptor to make paid API requests
- (Optional) Use the x402 Bazaar to discover services dynamically
- Payment flows are handled automatically for you
References:
- @x402/fetch on npm
- @x402/axios on npm
- @x402/evm on npm
- x402 Go module
- x402 Python package on PyPI
- x402 Bazaar documentation - Discover available services
- X402 with Embedded Wallets - User-facing applications with embedded wallets