Methodology

This page documents how x402 Counterparty Score computes every field it sells, what data it reads, and where its limits are. A service that sells trust judgements must itself be verifiable: every rule below is deterministic (graph rules over public data — no LLM inference anywhere in scoring), so any third party with the same public data can recompute and check a score.

What the score claims — and does not claim

The score measures economic authenticity: how much of a counterparty's settlement volume comes from real, independent buyers after filtering wash trading. It is a 30-day statistical judgement, not a real-time liveness monitor and not an audit of the counterparty's code or team. A trusted verdict means the on-chain evidence is consistent with real demand; it is not a guarantee of future delivery.

Scoring rules

Three public data feeds enter each score:

Wash-trading detection

Two deterministic graph rules mark settlements as washed:

  1. Self-dealing (one-node loop): the paying wallet is the seller's own pay-to address.
  2. Funding-loop (two-node loop): the seller has transferred funds to a buyer wallet at any point in the window; all purchases from that buyer are counted as washed.

Deliberate strictness: rule 2 also catches legitimate refunds, which are then misclassified as wash trading. We accept this false-positive bias — deterministic and verifiable beats generous and unfalsifiable for a trust metric. Known limitation: multi-hop funding loops (three or more wallets) are not yet detected; the wash-trading ratio is therefore a lower bound.

Metrics

Verdict thresholds

Confidence

confidence is an objective data-completeness measure — a fixed weighted sum of which input feeds were available for this subject, never self-reported by an LLM or any other model:

A score computed from all three feeds has confidence 1.0; a score with settlement data missing can be at most 0.4. Low confidence means missing data, and missing data never convicts: it caps the verdict at caution rather than forcing avoid.

Data sources and licensing basis

No commercial API data is resold; no raw data is forwarded — only judgements computed from it are sold.

Freshness, coverage, and failure honesty

Every score carries its computation time in updated_at, and answers older than 24 hours are never sold. Scores reach that freshness bar by two paths. A recurring batch schedule keeps frequently requested subjects warm; it processes the catalog in bounded batches, so on its own it covers only part of the catalog at any moment. When a paid request names a subject whose stored score has aged past 24 hours, the score is recomputed on the spot for that one subject and served at zero age — the same rules, the same sources, no improvised answer. Such scores carry an on-demand marker in the source field.

Coverage limits are still real and stated plainly. On-demand recomputation is offered only for subjects already present in our catalog-derived shelf, and its settlement coordinates come from the subject's live 402 handshake — so it applies to x402 endpoint URLs, not to bare pay-to addresses. A subject outside those limits gets the ANSWER_UNAVAILABLE envelope (503 semantics, with a machine-readable retry_after) rather than a guess.

The pipeline is fail-closed: if an upstream feed fails validation, the affected scores are delisted rather than re-served with a fresh timestamp. When any error envelope is returned, no payment is settled — an unavailable answer is never charged for.

Probing disclosure

To verify that a counterparty can deliver today, this service probes catalogued endpoints in three layers, acting as a buyer over the public protocol:

Probe wallet address
0x0033cE3c8E1eA57439a5c15f106EF4274c07A5Ee — the independent, small-balance wallet used for L3 probe purchases.

Probing disciplines: probe purchases are self-marked in our own data and are not counted toward the target's real_buyer_count; probe responses are handled as untrusted input; and this service will never probe-purchase its own tools.

Bootstrap settlement disclosure

The x402 Bazaar only indexes a service after its first successful settlement. To be discoverable at launch, this service will perform a single disclosed bootstrap settlement: one real x402 payment to score_x402_counterparty from a wallet we control. This is the only transaction of its kind, and it is governed by five published disciplines — violating any one of them would make it wash trading:

  1. The bootstrap wallet address is disclosed on this page and the transaction hash is published here once executed.
  2. Our own score self-marks it: the transaction is excluded from our own real_buyer_count, and our public score honestly shows the bootstrap transaction's existence.
  3. It happens once and is never repeated. Staying indexed requires real third-party settlements; if none arrive, we accept delisting rather than repeat a self-purchase.
  4. The transaction is never used in any claim of existing sales or adoption.
  5. The transaction executes in the same change that publishes its disclosure — no transact-first, disclose-later.
Bootstrap wallet address
0xAcf3944E771Ea8e662b2c2c9622D8B5299eBf1d3
Bootstrap transaction hash
0x9b29f10ffd9ac21136da31fa0780cdbed5ade48d2e58028bcb60ca4ab4b66b97

The wallet address was published ahead of execution; the transaction hash above was filled in the same change that executed the bootstrap settlement on 2026-07-10 (discipline e: no transact-first, disclose-later). It settled $0.02 USDC on Base mainnet and is the only transaction of its kind, ever.

Scoring ourselves

This service's own pay-to address is in its own catalog data, so it scores itself by the same rules. Scores about ourselves carry a ;self=true marker in the source field, the bootstrap settlement is excluded from our own real_buyer_count, and a low real_buyer_count on our own score is an honest state, not an error.