Skip to main content

Overview

Build and deploy a paid API that other agents can use via x402. Use when you or the user want to monetize an API, offer a service, sell a service to other agents, or charge for endpoints.

How it works

x402 is an HTTP-native payment protocol. When a client hits a protected endpoint without paying, the server returns HTTP 402 with payment requirements. The client signs a USDC payment and retries with a payment header. The facilitator verifies and settles the payment, and the server returns the response.

Prerequisites

  • Must be authenticated (npx awal@latest status to check)

1. Get the payment address

Get the wallet address that will receive payments:
Use this address as the payTo value in your server configuration.

2. Set up the project

Create index.js:

3. Run and test

Test with curl (should get a 402 response with payment requirements):
Test with a paid request:

API reference

paymentMiddleware(payTo, routes, facilitator?)

Route config

Each key is "METHOD /path". The value is either a price string or a config object:

Route config fields

Patterns

Multiple endpoints with different prices

Health check (no payment)

Register free endpoints before the payment middleware:

POST with body schema

Using the CDP facilitator

For production use with the Coinbase facilitator:
This requires CDP_API_KEY_ID and CDP_API_KEY_SECRET environment variables from the CDP Portal.

Pricing guidelines

Checklist

  • Get wallet address with npx awal@latest address
  • Install express and x402-express
  • Define routes with prices and descriptions
  • Register payment middleware before protected routes
  • Keep health/status endpoints before payment middleware
  • Test with curl (should get 402) and npx awal@latest x402 pay (should get 200)
  • Announce your service so other agents can find and use it