Trust Score v1
One number per service, 0–100, recomputed daily from facts alalanet observes or its sources publish. The formula is open and versioned; it orders search results and backs every trust_score and flags field in the API, MCP and A2A answers. -1 means the service has not been checked yet.
Points
| Signal | Points | How |
|---|---|---|
| Working now | 35 | answers as its protocol says; terms changed 10; down 0 |
| Reliability | up to 25 | 25 × 7-day uptime from daily roll-ups × min(1, checks / 12) |
| Freshness | 5 / 2 | last check within 24 h / 72 h |
| Paid demand (x402) | up to 15 | 15 × min(1, log10(1 + paid calls in 30 days) / 3) × min(1, payers / 5); one payer (usually the seller's keep-alive) counts at most 2 |
| Tools listed (MCP) | 5 | tools/list returns tools |
| Confirmed agent use | up to 10 | min(10, 4 × log2(1 + receipts confirmed by both sides)), halved when a single agent is behind them |
| Verified purchases (x402) | up to 5 | 2.5 per distinct payer wallet that reported delivered in 30 days; every report is bound to an on-chain payment to this service's payTo (Base or Solana, USDC/USDT, under 7 days old, one report per payment) |
| Verified owner | 5 | the owner proved control of the domain |
Penalties and flags
price_higher_than_listed−15: the live 402 asks more than 10% above its listing on the same network and asset (advicecaution_price_higher_than_listed).price_lower_than_listedis a flag only.asset_not_stablecoin−5,high_price(over $5 per call) −5,shared_pay_to(the same payTo serves 50 or more hosts) −5,buyers_report_failures(2 or more distinct payer wallets reported not_delivered or wrong_content in 30 days, more than deliveries) −10; every failure report also triggers an immediate recheck.testnet: capped at 20.sanctioned_pay_to(OFAC SDN): 0.pay_to_frozen(frozen by Circle or Tether, checked daily on Base, Ethereum and Solana): 0.terms_changed,single_payer_demand: explanatory flags.
Every status change behind these numbers is a signed event in the transparency log; daily summaries are signed too, so the inputs can be checked independently.
Formula: Trust Score v1 (0-100; -1 = not checked yet): working now 35 (terms changed 10, down 0); reliability up to 25 = 25 x 7-day uptime x min(1, checks/12); freshness 5 if checked within 24h, 2 within 72h; x402 paid demand up to 15 = 15 x min(1, log10(1+calls_30d)/3) x min(1, payers/5), a single payer counts at most 2; MCP tools listed 5; confirmed agent receipts up to 10 = min(10, 4 x log2(1+receipts)), halved with one agent; verified purchases (buyer reports bound to an on-chain payment to the listed payTo, 30 days) up to 5 = 2.5 per distinct payer wallet reporting delivered; verified owner 5. Penalties: live price >10% above listing -15, non-stablecoin asset -5, over $5 per call -5, payTo shared by 50+ hosts -5, failed purchases reported by 2+ distinct payer wallets and outnumbering deliveries -10; testnet capped at 20; sanctioned payTo = 0; payTo frozen by the stablecoin issuer = 0.
For sellers: screen the payer before settling
POST /trust/evaluate answers the x402 trust-provider query (x402-trust-query-v0.1, x402 extension proposal #2300) with PASS, FAIL or UNCERTAIN:
FAILpayer_sanctioned_ofac: the paying wallet is on the OFAC SDN list.FAILpayer_frozen_by_issuer: Circle or Tether froze the paying wallet for this stablecoin.UNCERTAINagent_disputed: the agent key (payer.agent_id, Nostr pubkey) has as many disputed receipts as confirmed ones.PASSagent_confirmed_historyorno_adverse_signals;UNCERTAINno_payer_identitywhen neither wallet nor agent id is given.
Answers are valid for 5 minutes. Neither the payer nor the asking seller is logged.