How this map is made.
One crawler, public pages only, honest user agent, and a quote for every claim.
Background landscape
The retro grid and sunrise on every page are driven by live map stats (or debug overrides).
- Reach — share of indexed merchants with
status=crawledand agent accessag≥1, in[0,1]. Grid line opacity scales with reach. - BTC sun — mean private-Bitcoin score across merchants that accept BTC, weighted toward Lightning, ecash (Cashu/Fedimint), self-hosted / no-account grades (
btcgrade andbtcprivhints). Sun height and glow scale with this score. - Preview — append
?reach=0.0–1.0&btc=0.0–1.0to any page to preview stages without changing data. Force fidelity tier0–3with?tier=(overrides reach-driven blending). - Fidelity tiers — reach maps to continuous fidelity
0–3(wireframe → flat poly → textured PS2-ish → Switch-ish). The live site uses the 2D synthwave canvas by default; add?gl=1to preview the WebGL tier upgrade path. - Reduced motion — with
prefers-reduced-motion, one static frame is drawn (no animation).
Limits
All requests come from one datacenter IP address. Sites often treat datacenter traffic differently from home connections, so a block here may not be a block for you.
Unknowns
Fields we could not observe stay null and display as unknown. We do not infer.
Checkout ease
Derived: when status is crawled, ease equals co when set; else 0 when ag is 0; else null.
Licenses
Software in the GitHub repository is under the MIT License (LICENSE).
Crawl records (JSON, API, and NDJSON export) are dedicated to the public domain under CC0 1.0 Universal (SPDX CC0-1.0).