Skip to content

Bazaar: treat exampleUrl as the fetchable resource; keep routeTemplate as the index key #784

Description

@twzrd-sol

Ask

Please treat exampleUrl as the fetchable resource in the Bazaar catalog, and keep routeTemplate as the index key.

Parameterized x402 routes collapse to a template URL such as https://intel.twzrd.xyz/v1/intel/trust/:pubkey. Independent buyers and weekly probes copy that catalog resource and GET it. The seller correctly refuses to sell a placeholder (HTTP 400, not a payable 402). The live 402 already ships extensions.bazaar.exampleUrl pointing at a real wallet. The published listing does not.

This is the same stale-metadata class as x402-foundation/x402#1659 (closed 2026-07-24; that thread redirected here and to Discord).

Evidence (reproducible, no API key)

Merchant catalog still lists the unpayable template:

GET https://api.cdp.coinbase.com/platform/v2/x402/discovery/merchant?payTo=GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs

Listed resource: https://intel.twzrd.xyz/v1/intel/trust/:pubkey
catalog lastUpdated 2026-07-23 (2026-07-23T13:09:47.469Z)
No exampleUrl on that row.

Live seller:

GET https://intel.twzrd.xyz/v1/intel/trust/:pubkey
→ HTTP 400  TEMPLATE_PLACEHOLDER_NOT_REPLACED  charged:false  try_now = example URL

GET https://intel.twzrd.xyz/v1/intel/trust/GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs
→ HTTP 402  x402 v2  PAYMENT-REQUIRED header
   extensions.bazaar.routeTemplate = /v1/intel/trust/:pubkey
   extensions.bazaar.exampleUrl    = https://intel.twzrd.xyz/v1/intel/trust/GFpLvocNdEjnSsLH3VJQL6wGcjGxTbUBrj6fqN3Qe1Gs

CDP public validator (POST /platform/v2/x402/validate, no key):

URL result
template :pubkey valid: false — returns_402 failed, actual 400
example GFpLvoc… valid: true, simulation.outcome: accepted, bazaarExtension.exampleUrl present

The example-URL validate also reports index.active: true and validate lastCrawledAt 2026-08-16 (2026-08-16T19:30:59.267Z). Crawl five days ago did not rewrite the July 23 listing.

GET https://intel.twzrd.xyz/.well-known/x402 already publishes a fetchable url with a real wallet substituted. Buyers who enter through Bazaar never see that.

Why a seller settle will not fix this

Documented refresh is “validate, then settle through the CDP Facilitator.” There is no seller delete/PUT. A $0.05 dogfood settle would likely keep routeTemplate as the published resource (Solana addresses collapse to one catalog key per your docs) and reset the 30-day no-settlement clock (lastCalledAt is also 2026-07-23). We will not 402 the placeholder and we will not pay that row back to life.

Expected

  1. Catalog resource for this route family is a fetchable URL (exampleUrl / a concrete path-param substitution), not …/trust/:pubkey.
  2. routeTemplate remains /v1/intel/trust/:pubkey as the stable index key so one listing covers every wallet.
  3. Health probes and weekly crawlers that GET resource receive 402, not 400.
  4. Subsequent crawls that see a live 402 with exampleUrl update the published row (catalog lastUpdated should not stay frozen after validate lastCrawledAt 2026-08-16).

Related

Seller: TWZRD Agent Intel, https://intel.twzrd.xyz. Happy to provide more captures.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions