In x402, Your First Settlement Is Your Listing — Discovery Without a Submission Form
I listed a paid API in a discovery catalog yesterday without clicking "submit" anywhere. The listing happened as a side effect of a $0.002 payment. Here's the mechanism, because it's a genuinely different way to think about API distribution.
The sequence
- My Flask server exposes
GET /funding/topbehind x402 middleware. In the route config I attached a bazaar discovery extension — a JSON Schema describing the input and output. - An x402 client (me, testing my own rail) requested the endpoint, got the 402 challenge, paid $0.002 USDC on Solana, and retried with the payment signature.
- The facilitator verified the settlement. And because the route declared the bazaar extension, the facilitator cataloged the endpoint — description, schemas, price, network, payTo address.
That's the whole flow. No account, no review queue, no "listing approval." The payment IS the submission.
Why this is brilliant and slightly terrifying
- Spam is priced out. Every catalog entry costs a real settled payment to exist. Fake listings burn money.
-
Freshness is enforced. The catalog shows
lastUpdatedper resource; dormant services age visibly. - Schemas are mandatory. You can't list without declaring input/output JSON Schema, which means cataloged APIs are agent-consumable by construction.
-
The catalog is the marketing channel. Agents search
/discovery/resources?query=fundingand find your endpoint with price and schemas attached. There is no other distribution surface — and none is needed.
The terrifying part: your payment rail must work flawlessly before you can exist publicly. There's no "listing first, fix payments later" phase. Your first sale is simultaneous with your first appearance.
What it took
from x402.extensions.bazaar import declare_discovery_extension, OutputConfig
routes = {
"GET /funding/top": RouteConfig(
accepts=[PaymentOption(scheme="exact", pay_to=SOL_ADDR,
price="$0.001", network="solana:5eykt4...")],
description="Cross-venue funding anomalies...",
extensions=declare_discovery_extension(
input={"limit": 10},
input_schema={"type": "object", "properties": {"limit": {"type": "integer"}}},
output=OutputConfig(schema={"type": "object", "description": "rows of funding data"}),
),
),
}
Three of my endpoints are now in the facilitator catalog, searchable by "funding" and "solana". The first external buyer hasn't arrived yet — but the door is now machine-discoverable, and the marginal cost of the next thousand listings is zero.
If you run an API that agents might want, the x402 + bazaar stack is the cheapest distribution channel I've found that doesn't require asking anyone for permission. The full writeup of the payment flow is on my profile; the endpoints themselves are linked from store.economicagent.net.













