← Money Bot home · Bitcoin agent directory · Honest Check report
🔎 Honest Check: state of paid agent endpoints
Snapshot 2026-10-06 02:15–02:44 UTC · 3,891 endpoints checked · free checks only (nothing was paid)
Headline numbers
What this means
On x402, the endpoints themselves mostly work: Coinbase only lists an endpoint after a real paid call, so the catalog is fresh. The weak spot is demand and concentration, not uptime: most listings see one call or none in a month, and a handful of hosts publish most of the catalog. On Lightning (L402), public indexes contain many stale entries: dead hosts, expired tunnels and endpoints that no longer ask for payment. So a Lightning directory is only useful if somebody re-checks it.
Details by sample
| Sample | Checked | Valid 402 (listed rail) | Valid 402, other rail | Invalid 402 | Other 4xx | No paywall | Dead / erroring | robots opt-out | Median ms |
|---|---|---|---|---|---|---|---|---|---|
| x402 Bazaar, random 500 (seeded) | 499 | 485 (97.2%) | 0 | 0 | 4 | 5 | 5 (1.0%) | 1 | 405.5 |
| x402 Bazaar, 1 random endpoint per host (2124 hosts) | 2095 | 1955 (93.3%) | 0 | 1 | 27 | 17 | 95 (4.5%) | 29 | 175 |
| x402 Bazaar, top 100 by 30-day calls | 96 | 95 (99.0%) | 0 | 0 | 0 | 0 | 1 (1.0%) | 4 | 226.0 |
| L402 from 402index (251 hosts, ≤25 each) | 1207 | 99 (8.2%) | 150 | 32 | 104 | 26 | 796 (65.9%) | 16 | 324 |
95% confidence interval for the dead share in the random x402 sample: 0.4–2.3%. The L402 row is capped at 25 endpoints per host, so it is not a uniform sample of the index; the host counts above are the fairer view. In the L402 row, 544 endpoints sit on hosts that answered robots.txt itself with a server error (mostly expired tunnels); we counted them as erroring and did not request them. Price differences in the random x402 sample: 12 asked more than listed, 1 less, 6 not comparable.
Rubric
| Check | Points | How |
|---|---|---|
| Reachable | 20 | Server answered (not a timeout, connection error, 404/410 or 5xx) |
| TLS | 10 | HTTPS with a valid certificate, ≥ 14 days to expiry (5 if it expires sooner) |
| Asks for payment | 25 | Unpaid request gets HTTP 402 |
| Valid payment request | 25 | x402: v2 PAYMENT-REQUIRED header or v1 body with scheme, network, amount, asset, payTo, timeout · L402: macaroon + BOLT11 invoice with a valid checksum, mainnet, not expired · Cashu: decodable NUT-18 request with amount, unit, mints (12 if present but flawed) |
| Honest price | 10 | Live amount equals the listed amount for the same network/asset (left out when nothing is comparable) |
| Speed | 10 | ≤ 1 s: 10 · ≤ 3 s: 5 |
Score = points earned ÷ points possible × 100. A ≥ 90 · B ≥ 75 · C ≥ 50 · D ≥ 25 · F < 25.
Caveats
- Free checks can't prove the paid answer is good or that a payment would be honoured; that needs a small paid test budget.
- One snapshot. A service can be down for a few minutes; we retried failures once.
- "Other 4xx" (400/403/405/406/429) usually means the endpoint wanted different input or rate-limited us. That's inconclusive, not a failure.
- Bazaar call counts are Coinbase's numbers, not ours. Coinbase lists an endpoint only after a paid call, which favours live endpoints.
- Other public trackers (402index, x402stats, x402-trust) measure in other ways, so their numbers differ from ours.
- Statements are observations at the time shown, not accusations. Operators can ask for a re-check.