EN

Pay x402 APIs from Solana, Stellar, BNB Chain and more

Shawn Muggle

x402 is a simple idea. A server answers a request with 402 Payment Required, lists what it accepts, and the client pays and sends the request again. No account, no invoice, no card form. For AI agents that call many small paid APIs, it is close to ideal.

There is one catch. The endpoint decides how it gets paid, and the x402 endpoints an agent meets typically ask for USDC on a specific network, such as Base or Solana. Your agent may hold something else: USDT on Solana, USDC on Stellar, or USDT on BNB Chain. Bridging funds before every call does not work either, because an x402 payment requirement is only valid for a few minutes, and moving money across chains usually takes longer than that.

ROZO is independent and not affiliated with any x402 seller.

Top up once, pay many times

ROZO's x402 payer splits the problem in two. You fund a ROZO balance once, with the coin you already have, on the chain you already use. After that, each x402 call to an endpoint that accepts USDC on Base is paid from that balance in seconds, inside the payment window.

If your agent can run a shell command, this is the whole integration:

  1. Fund the balance once. This prints a one-time deposit address; pay it from your own wallet: npx @rozoai/checkout x402 topup 20 --with usdt-solana
  2. Call a paid endpoint. The CLI reads the 402, ROZO signs, and the request is sent again with the payment: npx @rozoai/checkout x402 pay https://api.example.com/v1/search --method POST --body '{"q":"..."}'
  3. See what is left: npx @rozoai/checkout x402 balance

What happens on x402 pay

Your machine sends the request straight to the endpoint. When the 402 comes back, the CLI reads the payment requirements, keeps only the USDC on Base option, and asks ROZO to sign that one payment. It then replays your original request with the PAYMENT-SIGNATURE header and prints the response.

Each payment carries an idempotencyKey, and a retry of that payment reuses the same key, so a timeout cannot charge you twice.

No shell? The same payment runs on two core HTTP endpoints, /v1/x402/topup and /v1/x402/sign, with your agent key as a bearer token. Your agent replays its own request with the signature. The landing page shows both calls.

What protects your money

Giving an agent a wallet is a real risk, so the payer is built around narrow permissions.

What you can fund with, and what gets paid

There are two legs, and they are listed separately on purpose.

Top up leg, from you to ROZO:

Holding a native coin or sats? You can use them to top up OpenRouter with ROZO Checkout at checkout.rozo.ai.

Payment leg, from ROZO to the x402 seller:

Sellers are always paid in USDC, because x402 exact payments are token transfers. USDT only funds the balance; the seller is paid in USDC. If an endpoint only accepts USDC on Solana, the CLI stops with X402_UNSUPPORTED before anything is charged.

The minimum top up is $5, and the top up carries a 1% fee. Each x402 payment from the balance costs only what the seller asks. Withdrawals are not self serve yet: email hi@rozo.ai with your masked key and the amount, and the balance is sent back on the chain you choose.

Start now

The payer is live now. The landing page at checkout.rozo.ai/x402 has the three commands, the raw HTTP calls, limits and FAQ in one place. The full reference, with every error code, is on docs.rozo.ai. Agents can read the same instructions, with the safety rules and retry guidance, in checkout.rozo.ai/llms.txt and in the RozoAI/rozo-checkout-skill repository on GitHub.

Top up once with the coin you hold, and let your agent pay for the APIs it calls on its own.

Frequently asked questions

Why do I have to top up before paying an x402 API?
An x402 payment requirement is only valid for a few minutes, and moving funds across chains usually takes longer. Paying from a balance that is already in place is how the payment lands inside that window. You top up rarely and in larger amounts; you pay often and in small ones.
Which networks can the x402 seller be paid on?
USDC on Base (eip155:8453), x402 scheme exact. The Solana payment leg is coming later. If an endpoint only accepts Solana, the CLI stops with X402_UNSUPPORTED and nothing is charged.
Is this a subscription?
No. Every call needs a fresh 402 from the seller and a fresh signature from ROZO, so the seller never gets a standing authorization to charge you again.
What are the limits and fees?
By default $5 per payment and $100 per key per day, adjustable per key. The minimum top up is $5 with a 1% fee on the top up; each x402 payment costs only what the seller asks.
How do I get my balance back?
Withdrawals are not self serve yet. Email hi@rozo.ai with your masked key and the amount, and the balance is sent back on the chain you choose.

Pay x402 APIs with the stablecoin you already hold

Top up a ROZO balance once with USDT or USDC on the chain you already use. Your agent then pays x402 endpoints that accept USDC on Base from that balance.

Open the x402 payer

Pay x402 APIs with the stablecoin you already hold

Open the x402 payer