Provenance x402 Trust Index · Methodology · Open data

Methodology — how Provenance scores x402 endpoints

Plain-English description of every signal behind the numbers on this site, what they can and cannot prove, and how to dispute a rating.

Read this first. Every score on this site is a statistical estimate computed from public data: on-chain USDC transfers and the public x402 discovery registries. A high wash-risk score means the payment pattern is consistent with non-organic demand (self-testing, load generation, a single dominant payer) — it is not a finding of fraud. A reseller flag means an endpoint exhibits signatures consistent with reselling a first-party API — its actual authorization status is unknown to us; it may hold a legitimate redistribution license. Where our visibility is structurally limited (facilitator batch settlement), we say so and withhold the grade.

Data sources

No private data, no scraping behind authentication, no payment interception. Everything used here is publicly readable by anyone.

The 8-signal organic-revenue-quality (ORQ) model

Each scored merchant gets a wash-risk score from 0 (fully organic-looking) to 100, combining eight signals over its observed on-chain receipts:

  1. Distinct-payer count — how many unique wallets actually paid. One or two payers behind thousands of claimed calls is the strongest single wash indicator.
  2. Payer revenue concentration (HHI) — Herfindahl index of revenue by payer cluster. “Top cluster holds 99% of revenue” means one actor funds nearly everything.
  3. Funding-cluster analysis — payers funded from a common source wallet are collapsed into one cluster before concentration is computed.
  4. Payment-timing regularity — coefficient of variation of inter-payment gaps and the share of identical-interval gaps. Metronomic timing is machine-generated load, not demand.
  5. Wallet age & freshness — clusters of newly created wallets that only ever pay one endpoint.
  6. Self-dealing loops — payout flows that return to wallets that fund the payers.
  7. Claimed-vs-observed gap — registry-claimed 30d call volume versus on-chain receipts in the observation window (see the settlement caveat below).
  8. Cross-endpoint payer overlap — the same tiny payer set boosting several endpoints at once.

Grades: A (<10), B (10–19), C (20–41), D (42–69), F (≥70). Organic-adjusted calls = claimed 30d calls × (1 − score/100). Wash-rank inflation = organic-adjusted rank − raw-volume rank: how many leaderboard positions the raw number buys beyond what organic-adjusted volume supports.

Exact scoring (what the code does)

The letter grades in the Wash Report come from an additive wash-risk score, capped at 100. Each indicator has a severity from 0 to 1 that is multiplied by a fixed weight; weights deliberately sum past 100 so several strong tells saturate the score. Source: packages/scoring/src/wash-risk.ts in agentkit, methodology version 0.1.0.

IndicatorWeightSeverity rule
Few distinct payers451 payer = 1.0; 2 = 0.9; 3–4 = 0.65; 5–9 = 0.35; 10+ = 0
Self-dealing payout loops25share of revenue whose payer is reachable from the merchant's own payouts
Revenue concentration20(HHI across payer clusters − 0.1) / 0.9, floored at 0
Shared controlling key (Algorand rekey)20share of payers sharing an auth address; not applicable on Base
Fresh payer wallets15median wallet age at first payment: <1d = 1.0; <3d = 0.7; <7d = 0.4; <30d = 0.15
Metronomic timing15needs ≥5 payments; max of (1 − CV/0.3 when CV < 0.3) and the share of identical-interval gaps when above 50%
Single-funder ring15share of payers funded by one wallet, counted only above 30%

Levels: low <20, medium 20–44, high 45–69, critical ≥70. Where the claimed-vs-observed gap is the main driver (no on-chain receipts despite claimed calls) the row is shown as n/v rather than graded.

Separately, endpoints with enough data (at least 50 payments from at least 10 payer clusters) get an organic-revenue-quality (ORQ) score: a weighted geometric mean of eight sub-scores — funding graph 0.20, self-dealing 0.20, retention 0.15, temporal regularity 0.15, wallet fingerprint 0.10, amount distribution (including a Benford first-digit test) 0.08, concentration 0.07, cross-endpoint overlap 0.05 — with each sub-score floored at 0.02 so one zero caps rather than annihilates the result. ORQ grades: A ≥85, B ≥70, C ≥50, D ≥30, else F. A 90% confidence interval is computed by bootstrap, resampling whole payers (not individual payments) so each payer's timing structure is preserved; the interval is widened if needed to contain the observed score. Most endpoints today are below the data floor and receive only the wash-risk score above.

Payer classes by funder trace (v0.2, September 2026)

The integrity report and the per-merchant audit use a second, simpler method alongside the ORQ score: every payer wallet of a merchant is traced to its funders, and its volume is placed in one of five classes.

Shares are volume-weighted over the traced payers (up to 40 per merchant, 1,000 recent transfers per address). A merchant-funded payer is not proof of intent: a merchant may fund its own customers' agents for testing or promotion. The aggregate report names no merchant; the paid audit returns the per-payer evidence for one payTo. The same method was applied to Base using x402scan and Blockscout data. Free report: blocksigner.org/provenance/integrity; audit: /commission/washaudit?payTo=.

What has not been validated

Which chain each product covers

The settlement-visibility caveat (“n/v”)

x402 payments frequently settle through a facilitator, which may batch or defer transfers. In that architecture, few or no direct on-chain USDC transfers to the merchant's payTo address is normal and legitimate. Where a high score is driven mainly by missing on-chain receipts or a near-zero visible payer set — rather than by positive wash signals like metronomic timing or self-dealing loops — we display n/v (not verifiable): insufficient on-chain visibility (batch settlement possible) instead of a letter grade. The raw score is preserved in the open-data JSON for transparency, flagged with the same caveat.

Wrapper Watch: reseller signatures

Wrapper Watch flags endpoints whose public listing exhibits signatures consistent with reselling a first-party API from a domain the brand does not control. Signals, each contributing points to a 0–100 likelihood score:

  1. Brand-term-off-domain — the listing references a first-party brand (in its description, tags, URL, or schema) while hosted on an unrelated domain.
  2. Proxy language — self-describes as a proxy (“API proxy”, “powered by …”).
  3. Generic passthrough schema — the input schema is a bare passthrough (a single prompt/query/url field), consistent with forwarding to an upstream API.
  4. Cost-plus markup — per-call price is a near-multiple of the brand's public price.
  5. Domain forensics — generic infrastructure hosting (e.g. *.railway.app, *.vercel.app) while referencing premium first-party data.
  6. Live-402 probe — where noted, we confirmed the endpoint actually returns HTTP 402 Payment Required today.

Thresholds: flagged at ≥45; high confidence ≥70; medium ≥50. Every flag means “suspected — verification recommended”, and the resale-authorization status of every flagged endpoint is unknown to us. Brand pages exist so the one party who can verify authorization — the brand's own API/trust team — can review the evidence quickly.

Limitations

Disputes & corrections

If you operate a listed endpoint or represent a named brand and believe a rating or flag is wrong — or you can demonstrate authorization — open an issue at github.com/apeirontrade/provenance-site/issues. Provide the endpoint URL and any evidence you can share. We correct errors and annotate verified authorizations in the next weekly build, and will publish the correction alongside the original.

Legal framing

This site publishes independent statistical analysis of public blockchain data and public API-registry listings, in the tradition of independent ratings and consumer-protection research. Statements about named endpoints are limited to (a) verifiable public facts (listings, prices, on-chain transfer patterns) and (b) clearly-labelled statistical opinions derived from them (“consistent with”, “suspected”, “verification recommended”). No statement on this site asserts, and none should be read as asserting, that any named party has committed fraud, breached a contract, or violated any law.