“Being paid is what gets a service listed.”

An x402 facilitator and Bazaar discovery layer for Stellar

So AI agents can find, pay for, and verify paid services on stellar:testnet and stellar:pubnet.

View the repo ↗See what ships ↓

Discovery is always watching.

The gap

x402 already solves payment. Settlement on Stellar works today. The gap is discovery: an agent can only pay an endpoint it already knows about. Rialto adds the discovery layer, so a payment settling through the facilitator is what catalogs the service it paid for.

What ships

Three packages, not marketing categories

Facilitator

Canonical /verify, /settle, /supported, built on the Apache-2.0 @x402/stellar package. We compose settlement, we do not reimplement it.

  • Channel-account throughput: parallel settlements, no sequence collisions
  • Fee sponsorship with sponsor-cost protection
  • Verifiable, on-ledger settlement receipts

Discovery

Postgres-backed catalog with hybrid search and settlement-history ranking, so agents can tell proven endpoints from stale ones.

BM25+EmbeddingsRRFRanked

Federation

Independent facilitators register. External catalogs are ingested and cross-published.

Settles anywhere. Findable everywhere.

Proof, not claims

Search quality is proven, not asserted

Public eval harness

@rialto/eval-harness is a versioned golden-query set scored on nDCG@10, MRR, and Recall@20, gated in CI on every ranking change, re-runnable by anyone.

nDCG@10MRRRecall@20

Validated at the source

Malformed listings are a real, observed problem in production catalogs. @rialto/seller-sdk validates discovery metadata locally, before it ever reaches an index.

How it works

Discovery is a side effect of settlement

1

Seller declares

Metadata declared and validated locally via seller-sdk.

2

Payment settles

The facilitator verifies and settles the x402 payment on Stellar.

3

Bazaar catalogs it

Settlement carrying the Bazaar extension indexes the service automatically.

4

Agent discovers + pays

Via MCP search_resources / paid_call.

Design decisions

Two bets that shape everything

ADR 0001: upto on-chain cap

“Token allowances alone cannot bind the recipient or guarantee single settlement.”

A minimal, stateless Soroban contract enforces the spending cap on-chain and settles atomically in one transaction.

Read ADR 0001 ↗

ADR 0002: search stack

Rejected Elasticsearch for license reasons, and a dedicated vector database as “a second stateful service for a corpus that fits in RAM.”

Hybrid retrieval runs on plain PostgreSQL instead: one boring, self-hostable store.

Read ADR 0002 ↗

Prior work

We've shipped agent-payments infra before

AgentVault

Verifiable storage infrastructure for autonomous AI agents: Filecoin Onchain Cloud, x402 micropayments, and ERC-8004 identity, so an agent can prove who it is and that its stored data is real, not just that it paid for storage.

Filecoin + PDP proofsx402 micropaymentsERC-8004 identity
View AgentVault ↗

FCR-x402

An x402 facilitator for Filecoin using the Fast Confirmation Rule for sub-minute finality, with instant EIP-3009 payments and a deferred escrow model for high-frequency calls, both backed by facilitator-posted USDFC collateral.

x402 facilitatorFilecoin FCR finalityBond-backed settlement
View FCR-x402 ↗

Follow the build, milestone by milestone

Code lands in the open.

View on GitHub ↗Architecture doc