Skip to content

Bazaar auto-catalog: merchant sending the bazaar extension with successful mainnet settles is not cataloged in /discovery/merchants #5

Description

@magdielduboy96-debug

Hi — first, thanks for the facilitator and the transparency dashboard. The public analytics
endpoints are genuinely useful and this report is only possible because of them.

We run an x402 resource server (midax402.com) settling on Algorand MainNet through this
facilitator. We're seeing a reproducible gap between the analytics index and the Bazaar
discovery catalog, and we can't tell from the public API whether it's expected behaviour or
something missing on our side.

What we send

Our accepts[] entries follow the discovery shape (verified against a cataloged peer,
api.syraa.fun):

{
  "scheme": "exact",
  "network": "algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=",
  "asset": "31566704",
  "payTo": "XFVBA5GJAXJBRWLERVOTZH57NEGPCOP276U4N2E2LCMYWVVESQQPAPBODQ",
  "maxTimeoutSeconds": 120,
  "extra": { "decimals": 6, "feePayer": "ZMFK2OI7ZBD2U27ISERZC4S6LKM6WMFJPZQ4MYNJDZ2VNBNMBA67RA22AA" }
}

The payment payload for the settle below carried the extensions dict with the bazaar key —
our own request log recorded payload_extension_keys = ["bazaar", "payment-identifier"] for
that transaction.

Reference transaction

  • Settle txid: PAZ4OP2OVMLQ4GQPZMBHWHUJ5J2FX4G5AA3LYAOMCEK4HERTG2OQ
  • Timestamp: 2026-07-28 11:55:22 UTC
  • Resource: https://midax402.com/midas-ops/basic (POST)
  • Amount: 0.03 USDC · Algorand MainNet · outcome success
  • payTo: XFVBA5GJAXJBRWLERVOTZH57NEGPCOP276U4N2E2LCMYWVVESQQPAPBODQ

What we observe

The analytics index picks it up correctly and immediately:

GET /data/leaderboards?cat=merchants&range=all → we move from rank 53 to rank 46,
labelled "MIDAX402", volume: 0.06, settles: 2, verifies: 3.

The Bazaar discovery catalog does not, two hours later:

Endpoint Before settle (11:51 UTC) +31s (11:55 UTC) +2h04m (13:59 UTC)
GET /discovery/merchants?limit=50pagination.total 41 41 41
our payTo present in that list no no no
GET /discovery/resources?search=midax402 0 of 0 0 of 0 0 of 0

In the transparency dashboard these transactions are classified SOURCE = DIRECT; they don't
appear under BAZAAR or X402-GLOBAL-CHALLENGE.

So the payment is ingested by analytics but the resource/merchant is never cataloged — which
suggests the gap is in the cataloging step rather than in ingestion.

Questions

  1. POST /verify is documented as "Auto-catalogs resources via Bazaar extension". Beyond
    sending the bazaar key in the payload extensions, is there anything the
    paymentRequirements must contain for the catalog write to happen — e.g. description,
    mimeType, or a discoveryInfo object? Cataloged resources show those fields, and we
    currently don't send them.
  2. How is the source classification (BAZAAR / DIRECT / DEV / X402-GLOBAL-CHALLENGE)
    determined — per transaction or per merchant? It isn't exposed as a query parameter on
    /data/leaderboards or /data/transactions, so we can't infer it from the public API.
  3. Is X402-GLOBAL-CHALLENGE something a merchant opts into, or is it applied on your side?

Happy to share the exact paymentPayload / paymentRequirements we send for that txid if
that helps narrow it down. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions