For the complete documentation index, see llms.txt. This page is also available as Markdown.

Agentic Payments (MPP Router)

Pay-per-call for AI agents. Call 402-gated HTTP APIs and settle automatically in Stellar USDC via MPP Router.

Agentic payments let AI agents spend Stellar USDC to call paid HTTP APIs β€” no API keys, no subscriptions, no credit card on file. The agent makes a request, the server returns 402 Payment Required with a Stellar payment challenge, the agent signs with its wallet, retries the request, and receives the response.

ROZO's agentic payment stack runs on Stellar mainnet via MPP Router β€” a Stellar-native 402 proxy that accepts Stellar USDC and forwards the request to upstream merchants.

The router fronts 90+ upstream services across 670 endpoints, including OpenAI, Anthropic, DeepSeek, Mistral, Gemini, Grok, Groq, OpenRouter, Perplexity, Exa, Firecrawl, Tavily, Brave, Parallel.ai, Replicate, fal, Stability AI, Deepgram, DeepL, Alchemy, Dune, Nansen, CoinGecko, QuickNode, Mapbox, Google Maps and WolframAlpha. One Stellar USDC balance pays for all of them β€” no per-service API key, no subscription, no card on file.

Why Stellar for agentic payments

  • Sub-cent fees. Each 402-gated call settles for fractions of a cent, making microtransactions practical.

  • Fast finality. Stellar closes ledgers every ~5 seconds, so the 402 β†’ pay β†’ retry loop completes in one round trip.

  • Sponsored transactions. The agent's wallet does not need XLM for fees β€” MPP Router sponsors the fee payer.

  • One stablecoin balance, many APIs. You hold USDC on Stellar once and spend it across 90+ upstream services β€” no need to fund Base, Tron, or Solana.

The flow

Agent                           Server (402-gated)
  β”‚                                      β”‚
  β”‚ ───── 1. POST /endpoint ────────────▢ β”‚
  β”‚                                      β”‚
  β”‚ ◀──── 402 Payment Required ───────── β”‚
  β”‚       WWW-Authenticate: Payment      β”‚
  β”‚       request="<challenge>"          β”‚
  β”‚                                      β”‚
  β”‚  sign challenge with                 β”‚
  β”‚  Stellar wallet (sponsored mode)     β”‚
  β”‚                                      β”‚
  β”‚ ───── 2. POST /endpoint ────────────▢ β”‚
  β”‚       Authorization: Payment <cred>  β”‚
  β”‚                                      β”‚
  β”‚ ◀──── 200 OK + Payment-Receipt ──── β”‚
  1. First request: plain HTTP POST to the service URL.

  2. Server responds 402 Payment Required with a Stellar charge challenge (either MPP's WWW-Authenticate: Payment header or the x402 Payment-Required header).

  3. Agent signs the challenge with its Stellar key. The inner transaction is a sponsored SAC transfer β€” the agent's account is ALL_ZEROS and only the auth entries are signed, so the server can fee-bump and broadcast.

  4. Agent retries the request with the signed credential in the Authorization header.

  5. Server validates the credential, broadcasts the signed transaction, and returns the upstream response plus a Payment-Receipt header.

Protocols supported

MPP Router emits a single 402 response that carries both dialects. The inner signed XDR is identical β€” a single signer produces both envelopes.

Aspect
x402
MPP

Outer envelope

X-Payment header (base64 JSON)

Authorization: Payment <credential> header

Field names

payTo, asset, amount

recipient, currency, amount

Sponsored flag

extra.areFeesSponsored

feePayer: true

Inner XDR

Same sponsored SAC transfer

Same sponsored SAC transfer

The MPP and x402 payTo addresses in a single challenge are different and HMAC-bound β€” pay the address that matches the dialect you chose. Never mix.

Discovering services

The service catalog is live at https://apiserver.mpprouter.dev/v1/services/catalog. Never hardcode service paths β€” the catalog is the source of truth, and it carries its own generated_at timestamp plus a summary block with the current counts.

As of 2026-08-11 the catalog reports 670 endpoints from 94 upstream providers, of which 444 are payable and 15 are paid-verified β€” meaning a real paid call was made through them and the settling Stellar transaction hash is published. Treat unverified entries as available but untested.

Representative services:

id
price
upstream

openai_*

dynamic

OpenAI models

anthropic_*

dynamic

Anthropic models

openrouter_chat

dynamic

OpenRouter LLM proxy

perplexity_*

dynamic

Perplexity search-grounded answers

parallel_search

$0.01 / request

Parallel.ai web search

exa_search

$0.005 / request

Exa neural search

firecrawl_scrape

$0.002 / request

Firecrawl HTML β†’ markdown

tavily_*

dynamic

Tavily agent search

Prices and availability change; the table above is illustrative and the catalog is authoritative.

Getting started

The fastest path for Claude Code or similar AI agents is the stellar-agent-wallet plugin. Seven skills ship in it β€” onboard, check-balance, discover, pay-per-call, send-payment, send-raw and bridge β€” of which two drive the pay-per-call loop:

  • discover β€” fetch and filter the MPP Router service catalog

  • pay-per-call β€” execute the full 402 β†’ sign β†’ retry loop, handling both MPP and x402 dialects

Install the plugin, then:

For custom integrations, use the @stellar/mpp SDK on npm with @stellar/stellar-sdk ^14.6.1 and mppx ^0.4.11 as peer dependencies.

Safety notes

  • Credentials are single-use. The HMAC binding to amount, currency, and recipient is the router's defense against replay. If the retry fails, start fresh with a new 402 challenge β€” do not re-send the same credential.

  • Confirm above a threshold. For mainnet calls above ~$1.00, prompt the user before signing. The pay-per-call skill enforces this by default (--max-auto <usd> to override).

  • Validate the challenge amount. If you know the advertised price from the catalog, verify the 402 challenge amount matches before signing.

  • Mainnet only. MPP Router does not run on Stellar testnet.

Relationship to ROZO

MPP Router is the agentic payments rail that lets ROZO's Stellar-native wallets pay for off-chain services with the same USDC balance used for cross-chain intents. An agent holding USDC on Stellar can:

  1. Bridge from another chain to Stellar USDC via a ROZO intent.

  2. Call any MPP Router service and pay per request.

  3. Send the result to an intent for further action (e.g. swap, settle, bridge back).

Further reading


Last updated: 2026-08-11. Service counts verified against the live catalog on that date.

Last updated