For providers already on x402~5 min

ADD ONE LINE. SETTLE ON STELLAR TOO.

You already take money on your own key. Your endpoint answers 402 and gets paid on Base or Solana, and nothing about that has to change. x402 v2 lets one route advertise several ways to pay — one entry in accepts[] per chain, each with its own network and payTo. Add a Stellar entry and buyers on Stellar can reach you too.

Your 402 challenge, before and after

Before — Base only
HTTP/1.1 402 Payment Required

{
  "x402Version": 2,
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0xYourBaseAddress",
      "price": "$0.01"
    }
  ]
}
After — Base and Stellar, same endpoint, same price
HTTP/1.1 402 Payment Required

{
  "x402Version": 2,
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0xYourBaseAddress",
      "price": "$0.01"
    },
    {
      "scheme": "exact",
      "network": "stellar:pubnet",
      "payTo": "GYOUR...STELLARADDRESS",
      "price": "$0.01"
    }
  ]
}

One endpoint, one entry per chain. The buyer’s client picks whichever it can pay with. Your existing Base or Solana revenue is untouched— the first entry is byte-for-byte the one you have now, buyers already paying you keep paying you the same way, and you are not migrating anything.

What that looks like in code

Two added lines register the Stellar scheme, and one added entry advertises it. Shown with @x402/express; the shape is the same for Hono, Next.js and any other x402 v2 server middleware.

server — lines marked + are the whole change
import { paymentMiddleware, x402ResourceServer } from "@x402/express";
import { ExactEvmScheme } from "@x402/evm/exact/server";
import { ExactStellarScheme } from "@x402/stellar/exact/server";   // +
import { HTTPFacilitatorClient } from "@x402/core/server";

const resourceServer = new x402ResourceServer(
  new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }),
)
  .register("eip155:8453", new ExactEvmScheme())
  .register("stellar:pubnet", new ExactStellarScheme());            // +

app.use(
  paymentMiddleware(
    {
      "POST /v1/summarize": {
        accepts: [
          { scheme: "exact", price: "$0.01",
            network: "eip155:8453",   payTo: "0xYourBaseAddress" },
          { scheme: "exact", price: "$0.01",                        // +
            network: "stellar:pubnet", payTo: "GYOUR...ADDRESS" },  // +
        ],
      },
    },
    resourceServer,
  ),
);

No Stellar account yet?

That is not a blocker and it is not a migration. A Stellar address is just a keypair; the only friction is the account reserve and a USDC trustline. We sponsor both — tell us on the form below that you need one and we open it for you. The address is yours, the money goes straight into it, and moving that USDC back to Base afterwards is a bridge you run when you feel like it, from your own wallet.

What we ask you for

Service name

How it appears in the catalog and to buying agents.

API base URL

The server you already run. We route to it; we never host it.

The routes to charge, and their prices

Per call, in USD. Charge some routes and leave the rest free if you like.

A payout address per chain

At least one. This is where buyers' money lands — on your key, not ours.

What stays yours

Your server stays yours. Your key stays yours. Payments land directly on your address — nothing custodial on our side. We handle discovery, routing, the paywall snippet and the dashboard.

What happens next

  1. 1We check your endpoint answers a well-formed 402 challenge, that the price matches, and that the payTo address is the one you registered.
  2. 2One minimal paid call runs against your service as a real buyer. The money lands in your wallet, not ours.
  3. 3You are listed in the MPP Router catalog, at /services and in llms.txt, with you as the operator.
  4. 4The same integration makes you visible across the x402 surface — x402scan, the Bazaar and MPPScan.

Get listed

Service nameHow it appears in the catalog and to buying agents.
API base URLYour server, your domain. We route to it; we never host it.
Routes to charge, and their pricesOne per line: method, path, price per call in USD.
Payout address, per chain
Stellar
Base
Solana
At least one. Payments land here directly — paste from your wallet rather than typing, since a wrong character sends money to a stranger and we cannot claw it back. No Stellar account yet? Leave it blank: we sponsor the account reserve and the USDC trustline for you.
EmailFor the setup reply and payment notifications. Nothing else.
Anything else? (optional)

This is a waitlist, not an automated signup. We reply by email to finish the setup with you.

Not charging per call yet? If your API has no paywall at all, start here instead — one middleware snippet, about 15 minutes.