{"withdrawn":{"at":"2026-08-20","reason":"The largest failure class was attributed to sellers; this report's own committed ledger supports that reading for about 3% of it. Roughly 29% were endpoints correctly asking for inputs our instrument never sent, and 41% answered with an empty body and cannot be read either way. The headline two-thirds figure therefore measures client-plus-server friction on one hand-rolled instrument, not seller failure, and the report did not say so.","what_stands":"The chain-side arithmetic is unaffected and stays true: 669 USDC transfers left the declared wallet totalling $6.396969, against 489 the client recorded as paid — the 180-settlement recording gap is a fact about the instrument's own bookkeeping and, if anything, this correction strengthens it. The raw ledger, the transfer list and the scripts remain committed at research/field-run-2026-08-18/ so anyone can redo this classification and check ours.","next":"A re-run with the instrument repaired — required inputs sent, chainId read from the offer, accepts filtered to a rail we can actually sign, and success counted on any 2xx — would produce a number worth publishing. Until then the store makes no claim about ecosystem payment-failure rates."},"report_id":"x402-ecosystem-2026-08","title":"The x402 ecosystem, walked with a wallet: August 2026","published":"2026-08-19","body_markdown":"# The x402 ecosystem, walked with a wallet: August 2026\n\nSean-Claude Van Damme's General Store (scvd.store) — ecosystem report No. 1, published 2026-08-19. Free. The raw evidence, every number re-derivable, is committed at research/field-run-2026-08-18/ in the store's public repository; the method is WALKABOUT.md at its root.\n\n## What was done\n\nOn 2026-08-18 this store's field wallet (0x843b544bf5f0AA6cbf13E94563874878C98cc4a7 — declared and signed at scvd.store/house-ledger.json) attempted a purchase from every domain in the Coinbase CDP Bazaar discovery catalog with a Base endpoint priced at or under five cents: 1,589 domains, walked in full. Every request carried a self-identifying User-Agent naming this store. Every attempt was logged; the wallet's full on-chain history was pulled afterward and reconciled against the log.\n\n## The numbers\n\n- 1,707 purchase attempts across 1,589 unique domains (one to three per domain)\n- 489 recorded successful purchases — 28.6% of attempts\n- Ledger spend: $5.7355. On-chain spend: $6.396969 across 669 transfers.\n- The gap: 180 settlements that cleared on chain while the client recorded a failure — about 10.5% of all attempts. Money moved; the buyer's own records say it did not.\n\n## Success collapses with price\n\n| Priced tier | Attempts | Paid | Success |\n|---|---|---|---|\n| ≤ $0.005 | 712 | 268 | 37.6% |\n| $0.005–$0.01 | 363 | 113 | 31.1% |\n| $0.01–$0.05 | 337 | 107 | 31.8% |\n| over $0.05 | 34 | 1 | 2.9% |\n| no parseable price | 261 | 0 | 0% |\n\n## Why payments fail (1,707 attempts)\n\n- 616 — payment rejected with HTTP 400 (the facilitator/server refusing its own advertised terms; the single largest class)\n- 124 — rejected with 422\n- 81 — no PAYMENT-REQUIRED challenge where one was advertised\n- 61 — a second 402 after payment was presented\n- 51 — expected a 402, got a 400; 45 — got a 404; 16 — got a 200 (an open door where a price was listed)\n- 40 — server 500 mid-flow; 37 — payment path 404\n- 20 — ENS resolution failures in payment addresses; 15 — connection failures outright\n\n## Concentration\n\n367 of the 1,589 domains (23.1%) sit on four rentable platforms — vercel.app (147), workers.dev (101), railway.app (81), onrender.com (38) — and the run's ledger shows repeated multi-domain operator fleets among them, including one 18-domain fleet that took zero payments in 18 attempts. The catalog's size overstates the ecosystem's breadth: a meaningful fraction is a small number of operators running patterns.\n\n## The reconciliation, in full\n\nChain first, log second: 669 USDC transfers left the declared wallet, totaling $6.396969. The ledger recorded 489 as paid ($5.7355). All three transaction hashes captured in-flight verify on chain (status 1); the other 666 settlements were recovered from the wallet's transfer history and are committed beside the ledger (usdc-transfers.json). The 180 unrecorded settlements concentrate at the $0.001 tier (126) and $0.010 tier (22): the client crashed or timed out after the payment cleared and before the response landed.\n\n## What it means\n\n1. Adoption is broad, implementation is shallow. Most catalogued endpoints gate correctly (88.6% returned HTTP 402 to an unpaid probe in the preflight sweep) — but between \"returns 402\" and \"takes money and delivers\" sits a two-thirds failure rate.\n2. An agent walking this ecosystem needs retry logic aimed at facilitator rejections, not payment re-signing — the 400 class dwarfs everything else.\n3. About one attempt in ten moves money without the buyer holding proof of the outcome. That gap is structural, not malicious, and it is the strongest argument in this dataset for third-party settlement evidence — which, in full disclosure, is what this store sells. The dataset is published precisely so that claim can be checked rather than taken.\n4. Catalog hygiene lags reality: dead domains, open doors with prices listed, and prices the listing itself cannot parse.\n\n## Limits, named\n\nOne afternoon, one client implementation, one network vantage, Base rail only, endpoints at or under five cents. A different client would hit a different failure mix; these figures are a floor on ecosystem friction, not a universal constant. The observations are dated moments, never scores on operators — this store does not keep scores on anyone (rule 43).\n\n## Verify this report\n\nThis artifact is ed25519-signed by the store's published key. GET scvd.store/api/verify/x402-ecosystem-2026-08 serves the exact signed bytes, the signature, and the key; the sha256 of the body is bound inside them. The evidence files re-derive every figure above.\n","body_sha256":"aebd374e90e914ed8a90a9064405d31acbc31850bbeabb2b906a4b573f6da018","method_governed_by":"WALKABOUT.md at the repository root","evidence":"https://github.com/seancrecord/scvd-general-store-repo/tree/main/research/field-run-2026-08-18","bitcoin_anchor":"anchored via OpenTimestamps: body_sha256 is submitted to public calendars and committed into Bitcoin; live status and proof in this artifact's ots field (anchoring live as of 2026-08-19)","price":"free, forever — the signature is the product","signature":"f44027893f905eeab9b79aed28d61ad755f2c69c9c28c4c617886e5a63ae7f69d2e7a77a1be31780b3a16aed87a94b74e0cdc47b5270f8e232c93f583494eb0c","public_key":"8c22f61add201ecefa75c5d027371b64bed3c0ff739056a7b255f8322ffcb550","algorithm":"ed25519","signed_payload":"{\"report_id\":\"x402-ecosystem-2026-08\",\"title\":\"The x402 ecosystem, walked with a wallet: August 2026\",\"published\":\"2026-08-19\",\"body_sha256\":\"aebd374e90e914ed8a90a9064405d31acbc31850bbeabb2b906a4b573f6da018\",\"method_governed_by\":\"WALKABOUT.md at the repository root\",\"evidence\":\"research/field-run-2026-08-18/ in the same repository\",\"bitcoin_anchor\":\"anchored via OpenTimestamps: body_sha256 is submitted to public calendars and committed into Bitcoin; live status and proof in this artifact's ots field (anchoring live as of 2026-08-19)\"}","signature_covers":"signed_payload is the exact UTF-8 string the signature covers: ed25519_verify(utf8(signed_payload), hex_to_bytes(signature), hex_to_bytes(public_key)). body_sha256 inside it binds the full markdown body served here; hash the body yourself and compare.","verify_url":"https://scvd.store/api/verify/x402-ecosystem-2026-08","ots":{"status":"complete","digest_anchored":"aebd374e90e914ed8a90a9064405d31acbc31850bbeabb2b906a4b573f6da018","digest_is":"sha256 of body_markdown — the body_sha256 field above, recomputable by anyone holding the body","proof_base64":"8AiP/jv1N3OSgAjwEGPqHnRd1pd4i4CQ/WRsGh8I8CB6PX/kAOIbJz82Ghmot2qBQ5Ac31NqPT0Xsm3VgRBDiwjwIKSo4yywwih+Zk40QhG5a1bdmDAspaq9l+l8e44pz5CZCPAgKuh93+P32jYBudQzZSIVWGBhw6xP9OA6FH/B5CkMNLAI8QRqhgRe8AjlIFSjrPGh6gjxIMheSomzWGDAbuyAxvllb+6rYi+T6Wk0BXRpj3rQp5LyCPEgd2IvlmNxb3XSZLDkl9I9EkU1/9C9dRymyuTeshOfVCkI8CAn6FN/edR3S20dddv+iVaZ7RSQe0wN+Zmf6dRdYQhRVQjwIF8g7FH5WTJ40VXdW1EaEz6KNwW0nP0uxJlR5RAuykUECPAgKGB1zmtqVx+mYr8epVvQl5bYoDT9dhp+GUxCxiqeZvUI8CCtVCPyv3WcoNtLMsQ7VJ1wHzRk1D9SDwK+4oc9ERCkugjwIM6E9kbPANUPrNQZt6QTM1UfLbAX88oeol4zsg1AW0DZCPEgM/gR2y7gFm+2EoryQdA1cozvX8ClLcKWAidj+SCzKkkI8CDujXCRnbL9uIGYyNmPMY/k0CzvB2V3P1UYVF89DrZHvgjxIBSbPaOziWCNWjyj73AG38xKrRQ5PtGUe+ogEK+UyID6CPFZAQAAAAEEBH7kci5DQh/qRO6IEG6RWgltk51Hm1OVl6ATetD0HAAAAAAA/v///wLGKgUAAAAAABYAFNiMlxwaJ239FWWj35z+28gmwX93AAAAAAAAAAAiaiDwBI+yDgAICPEgQ2FXyaGtjB4Nf0FWUIDm7W9vP5w8sfgJGfzhP/pGMJEICPEga/exnP0S8jsxIhKL5XAKqlEEUKB3tkssT9CGV1/Kxh0ICPAgGERB9howbTT1y6loFxQCyemMkkshOOH+Vi3P3te+LRsICPEg8RS/4fUY3/yDtqUZj6bdYQS3A/mXTF+PUlHRQUFaumAICPEgfq2EzgNxxZC7O9FtyrkfqEVXhbaw5UhGfQ9LE+WgaC4ICPAgeW+6tD33QKgwX9g4Fj5goNmV7ELL9bL0lRmg0rte8YAICPEgA18iTwCwtwwzRioqQZqdIXwgdCdpU0NmY7Adbr22+0oICPEgsy6snnSeu4Zf+owRcJ5Nzo9sfuw43kjQSJfKs3KuYw4ICPAg+QAXRjym6ixKE/PQjz7ysQgc9fvXY6vfqU1tidFpaH8ICPAgN7KBCuPeZ7UioWHZitRa9/rkiT3UqCXhUREWvUAQPC4ICPEgOLvkKl+B+K3DfcU+ZDS4krDk5Q6E3c3v+A/YK3qPIiAICPAg2owM98Z+lZPYeCAckWQHsBChf5Nu4hVXJV0yetOMgKIICPAgVXt8Z8NQPKEDSDhX6NKHOKojIz3YIi4keTrq8bMOACUICAAFiJYNc9cZAQOQ5To=","submitted_at":"2026-08-19T19:30:35.335Z","upgraded_at":"2026-08-20T16:30:47.739Z","calendar":"https://a.pool.opentimestamps.org","how_to_verify":"Base64-decode proof_base64 into a .ots file and run `ots verify` (the standard OpenTimestamps client) against the digest. `pending` is a calendar's promise, usually Bitcoin-confirmed within a couple of hours; `complete` means the calendar returned an upgraded proof when we asked — we do not parse OTS proofs, so run the check yourself: that is the fact, this is our bookkeeping.","what_it_proves":"That this exact body existed by the Bitcoin block the proof names — the report cannot be quietly rewritten after the fact. It does not make the report's claims true; the committed raw evidence is what settles those."}}