x402 Bazaar Listing Monitor: catch a vanished listing before your revenue does

x402 Bazaar Listing Monitor: catch a vanished listing before your revenue does

If you sell over x402, your buyers find you through Coinbase CDP’s Bazaar discovery catalog. It’s the directory that lets an agent or a buyer’s client discover your payTo address and the resources you serve. Settlements happening normally tells you the payment rail works. It tells you nothing about whether you’re still listed.

That gap matters because CDP’s discovery API has a recurring, publicly-reported class of bug where a resource silently stops appearing in the catalog — despite payments continuing to settle against it correctly. Nothing errors. Nothing notifies you. The first signal most sellers get is a revenue dip days later, and by the time you notice the dip, you’ve already lost however many buyers couldn’t find you in between.

How to check it yourself, right now

You don’t need our tool to find out whether this is happening to you today. CDP exposes the same discovery data it hands to buyer clients, and you can query it directly:

curl "https://api.cdp.coinbase.com/platform/v2/x402/discovery/merchant?payTo=<your-0x-address>"

Compare the resource URLs that come back against the list you actually serve. Anything missing that should be there is the failure mode above — or a config issue worth double-checking. If you want to be thorough, re-run this after every deploy and every so often between them, since nothing on CDP’s side will tell you if it happens again.

That’s the whole check. It’s simple enough to do by hand, and if you’d rather keep doing it by hand, you now know exactly what to run. You’ve lost nothing by reading this far.

What we automated

The check doesn’t change if you run it once or run it forever — only whether a human remembers to. So we built a scheduled version of it.

x402 Bazaar Listing Monitor registers your payTo address and the resource URLs you serve, then polls the same public discovery catalog on a 6-hour cron and diffs the result against what you registered. When a resource drops out — or comes back — the state change is recorded with a timestamp inside the service, instead of you having to notice and remember when things went wrong.

There’s also an on-demand path with no registration at all: an MCP tool, check_listing_health, that runs the identical diff for any payTo/resources pair, registered or not.

parametertypenotes
payTostring0x-prefixed, 40 hex characters
resourcesstring[]1–200 http(s) URLs

No signup, no API key — call it and get back each resource flagged as listed or missing. Find it on the official MCP registry or on Smithery.

What this is, plainly

This is a scheduling and alerting layer on top of the same public data CDP already exposes — not a replacement for CDP’s own troubleshooting guidance, and not a claim that we see something CDP doesn’t. The value is vigilance kept up on a schedule you don’t have to remember, not a unique data source.

Two things worth being exact about, because they’re easy to overstate:

  • The free tier polls every 6 hours, not instantly — and that’s a real trade, not a rounding error. A drop that persists to the next poll is caught. A drop that fully recovers in between two polls produces no record at all: the check only ever compares one poll to the next, so anything that happens and un-happens inside a 6-hour window is invisible to it. Paid tiers tighten the interval; pricing for those is opening soon — register your interest if you want to hear when they land.
  • Delivery and history retrieval aren’t exposed yet. A state change is detected and recorded with a timestamp inside the service the moment it happens — that part is real and already running. What isn’t built yet is a way for you to pull that record yourself, or have it pushed to you (email, webhook, whatever it ends up being). Until both of those exist, the manual check above is your actual read path: this tool decides when the check runs; it doesn’t yet show you what it found.

Neither of those is a small print. Deciding whether that’s the right trade for your setup is exactly what the manual check above lets you do first.

Try it

Related Posts

A wrong ABN and a smudged one look the same to OCR. We made sure ours doesn't guess.

A wrong ABN and a smudged one look the same to OCR. We made sure ours doesn't guess.

Every Australian Business Number carries a checksum — a modulus-89 formula baked into the digits themselves, so a wrong ABN is usually mathematically detectable, not just "looks a bit off." Which…

read more
Build vs. buy: should your bookkeeping tool parse receipts with a raw LLM call?

Build vs. buy: should your bookkeeping tool parse receipts with a raw LLM call?

Here's the honest version of the pitch first: if all you need is vendor, date, and total off a receipt, you should probably build it yourself. A single vision-model call — GPT-4o-mini, Gemini Flash…

read more
Choosing a product categorization API: five questions that separate grounded from guessing

Choosing a product categorization API: five questions that separate grounded from guessing

If you're mapping a product feed to the Google Product Taxonomy, you have more options than you did a year ago — a raw LLM call, a handful of categorization APIs, a feed tool with categorization…

read more
Choosing a receipt extraction API: six questions that separate tax-aware from just-OCR

Choosing a receipt extraction API: six questions that separate tax-aware from just-OCR

Here's the honest version of the pitch first: if all you need is vendor, date, and total off a receipt, you should probably build it yourself. A single vision-model call — GPT-4o-mini, Gemini Flash…

read more
The GST rule your receipt scanner doesn't know exists

The GST rule your receipt scanner doesn't know exists

A restaurant receipt and a client dinner look identical to an OCR tool. Under Australian GST rules, they aren't: entertainment expenses have their input tax credit (ITC) denied by default — GST was…

read more
How to integrate the catalog attribute normalizer MCP server

How to integrate the catalog attribute normalizer MCP server

This guide covers the mechanical integration steps for the catalog-attribute-normalizer MCP server: client configuration, authentication, and tool usage, so you can normalize product catalogs against…

read more
How to integrate the ACJ Labs receipt extraction MCP server

How to integrate the ACJ Labs receipt extraction MCP server

This guide covers the mechanical integration steps for the ACJ Labs receipt extraction MCP server: client configuration, authentication, schema definitions, and error handling, so you can consume the…

read more
How accurate is "just ask the model to categorize it"? We measured — 1–2 of 12 checks.

How accurate is "just ask the model to categorize it"? We measured — 1–2 of 12 checks.

If you're mapping a product catalog into Google's Product Taxonomy, the obvious first move is to hand the title and description to a capable model and ask for the category. It reads well in a demo.…

read more
AI product classifiers hand you category IDs that don't exist. Here's how we stopped ours.

AI product classifiers hand you category IDs that don't exist. Here's how we stopped ours.

Ask a capable AI model to classify a product into Google's Product Taxonomy and it will do something unsettling: return an ID that looks completely valid — right format, plausible category name — and…

read more