Read on Nostr instead?

Global Metrics ๐ŸŒ๏ธ

  • Total Bitcoin-accepting merchants: 26,073 -> 26,575 (+502 +1.9%)
  • Total Bitcoin-accepting places: 28,572 -> 29,061 (+489 +1.7%)
  • Recently verified (1y): 16,990 -> 16,860 (-130 -0.8%)
  • Avg. days since last verification: 402 -> 418 (+16 +4.0%)
  • Merchants boosted: 11 -> 14 (+3 +27.3%)
  • Total boost duration: 390 -> 1,605 (+1,215 +311.5%) days
  • Comments posted: 34 -> 25 (-9 -26.5%)

Graph showing merchant adoption over the last month

Graph showing merchant adoption over the previous 3 months

Find current stats over at the BTC Map Dashboard.

Note: the charts above track merchant growth only. The total places metric includes merchants plus exchanges/ATMs.

Country Activity ๐Ÿ“ˆ

Here are this month’s most active countries in terms of merchant data editing.

Name Total Created Updated Deleted Comments
๐Ÿ‡บ๐Ÿ‡ธ United States of America 663 378 242 36 7
๐Ÿ‡ฏ๐Ÿ‡ต Japan 133 9 118 6 0
๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa 76 30 39 7 0
๐Ÿ‡จ๐Ÿ‡ญ Switzerland 49 3 34 12 0
๐Ÿ‡ฎ๐Ÿ‡น Italy 48 12 29 6 1
๐Ÿ‡ง๐Ÿ‡ท Brazil 42 6 32 3 1
๐Ÿ‡จ๐Ÿ‡ด Colombia 41 9 32 0 0
๐Ÿ‡ซ๐Ÿ‡ท France 39 2 34 3 0
๐Ÿ‡น๐Ÿ‡ญ Thailand 34 10 22 2 0
๐Ÿ‡ฉ๐Ÿ‡ช Germany 28 6 18 2 2

Community Activity ๐Ÿ“ˆ

Here are this month’s most active communities in terms of merchant data editing.

Name Total Created Updated Deleted Comments
๐Ÿ‡ฏ๐Ÿ‡ต Tokyo Bitcoin Base 103 6 93 4 0
๐Ÿ‡บ๐Ÿ‡ธ BitPlebs Los Angeles 68 30 37 1 0
๐Ÿ‡จ๐Ÿ‡ด Satoshi Team - Antioquia 52 23 29 0 0
๐Ÿ‡จ๐Ÿ‡ด Cafeteros Bitcoiners 42 13 29 0 0
๐Ÿ‡น๐Ÿ‡ญ BOB Space 24 5 17 2 0
๐Ÿ‡บ๐Ÿ‡ธ Indy Bitcoin 24 2 1 21 0

New Communities ๐Ÿซ‚

We welcomed the following new communities over the past month.

We now have 686+ Communities scattered across the planet. ๐ŸŒŽ๏ธ

Active Taggers ๐Ÿ†

Here are this month’s most active contributors adding and updating merchant data on BTC Map.

๐Ÿ“ฃ Shoutout to the top 3:

  • ๐Ÿฅ‡ Rockedf with 272 edits
  • ๐Ÿฅˆ RoseBTCmap with 257 edits
  • ๐Ÿฅ‰ Comino with 155 edits
Name Total Edits Created Updated Deleted
Rockedf 272 233 39 0
RoseBTCmap 257 187 70 0
Comino 155 17 122 16
ch0meji 68 8 57 3
geomaster01 59 0 59 0
Satoshi Team 52 23 29 0
BTCGVA 40 3 20 17
mrjonesza 39 31 2 6
rimugu 36 0 36 0
wikimax 29 0 29 0
Ja Pe 25 0 1 24
ArancioneMilano 20 19 1 0
tbbsatoko 19 1 14 4
Hans Jรผrgen von Lengerke 19 0 18 1
GA_Kevin 18 0 18 0

Find current and historical stats on the Tagger Leaderboard.

Web App ๐Ÿ•ธ๏ธ

July saw 22 merged PRs on the Web App, led by the new omnisearch experience.

  • Omnisearch – you can now search places by address and other OSM tags, with results ranked by their localized names. Search as you know it is gone; everything is one box.
  • Search bar refactor – the desktop floating search bar is now a button facade that expands on demand, and the input no longer scrambles your text while typing.
  • RTL text on the map – Arabic, Hebrew, and Persian labels now render correctly.
  • Community icons – now served from the new v4 area image endpoint.
  • Short URLs – support for community short links.
  • Beta APK downloads – the Android beta APK can now be grabbed straight from the Apps page.
  • Apps page – Trustless iOS wallet added, and Club Orange joined as a sponsor on the supporters page.
  • Dutch translations – thanks to Edwin Comino / LighthouseFR.
  • Fixes – the ?outdated URL query filter works again, community area pages got a shared loader, and the Netlify _redirects move unbreaks deep links.

Infrastructure โš™๏ธ

Another big month on the API with 47 commits. Most of the effort went into a new wallet subsystem:

  • Wallet xpub tracking – the API now tracks wallet xpubs for internal transparency, with a balance and history cache so the dashboard reads from a snapshot instead of probing Electrum on every request.
  • Electrum server management – Electrum endpoints moved from a single config string to a dedicated table managed by four new RPCs with priority ordering and soft deletion, plus an experimental SPKI-pinned client for self-hosted servers with self-signed certs.
  • Platform stats – the API now reports which platforms and client apps call us over 1/7/30-day windows, helping prioritize resources and spot anomalies.
  • Omnisearch backend – search now covers areas as well as places, matching on address and any other OSM tag, with sane ranking and pagination.
  • Events – new update_event RPC with PATCH semantics, area_id and cron_schedule exposed on event queries, and admins can now fetch events.
  • Config – boost element prices moved from hardcoded columns to a configurable JSON list, and CORS config moved into the database.
  • Maintenance – clippy 1.96 lints fixed and strum::AsRefStr derived across the DB layer.

Dashboard

The internal dashboard gained platform stats, wallet stats with a snapshot timestamp, and a per-wallet transaction popup.

Event Admin

A new internal tool was born: Event Admin is a small static site that lets admins browse events directly on the map, rename them inline from the marker popup, and open a full edit form – all via the API.

CLI

The btcmap-cli gained wrappers for the new wallet and Electrum server RPCs, an event update-event command, and type-specific search commands.

Android App ๐Ÿค–

Some important refactoring enabled us to shed roughly 500 lines of code, simplifying the structure. We also worked on:

  • Viewport caches – merchants, events, and exchanges each got a dedicated cache built on a shared ViewportCache base, with proper async queries, antimeridian bounds-splitting, and id-based deduplication. This also fixed merchants drifting out of sync with the viewport.
  • Controllers – map setup, place/event/exchange selection, search, and location logic were each extracted into their own controller.
  • Fixes – no more empty map viewport on startup or filter switches, and no map blink when sync completes after the bundled places import.
  • Area screen – upcoming events now show as clickable cards with icons, one-off events are listed too, and everything sorts by date. Phuket’s area screen got a website URL override.
  • Activity feed – the local activity feed can now be filtered by area and period.
  • Publishing – a publish.sh helper streamlines cutting new builds. A new release is on the runway.

Analytics ๐Ÿ“Š

Our July website stats are as follows:

Graph showing website analytics over the last month

Check out the BTC Map Analytics Dashboard. Track our growth and see where users are coming from in real time.

Credits ๐Ÿซถ

Thanks to everyone who contributed to the project this month, including the Shadowy Supertaggers:

  • Hannes / escapedcat – omnisearch on both web and API, search UX refactors and fixes, RTL map rendering, v4 area images, and the outdated-filter fix.
  • Igor Bubelov – wallet xpub tracking, Electrum server RPCs, platform stats, events API work, the Android MapFragment refactor, dashboard wallet/platform stats, the new Event Admin tool, CLI updates, and admin RPC rename.
  • Nathan / dadofsambonzuki – apps page additions, Lightning identifier migration, Club Orange sponsorship, and admin app maintenance.
  • Edwin Comino / LighthouseFR – Dutch translations.
  • Dave Day – admin app deploy workflow.
  • Rockedf, RoseBTCmap, Comino, and all the active taggers listed above.

Support Us ๐Ÿค

There are many ways in which you can support us:

  • Become a Shadowy Supertagger and help maintain your local area or pitch in with the never-ending global effort.
  • Help improve or maintain our code. Check out our GitHub Team and hop into our Matrix Space.
  • Consider donating to the project here.