89 net new places, a merchant heatmap, Nostr auth and the redesign of the merchant details pane.
Oh, and an integration with cluborange (npub1ve8…9ka6) 🍊
quoting
naddr1qv…7ffzGlobal Metrics 🌍️
- Total Bitcoin-accepting merchants: 25,684 -> 26,073 (+389 +1.5%)
- Total Bitcoin-accepting places: 27,900 -> 28,572 (+672 +2.4%)
- Recently verified (1y): 16,551 -> 16,990 (+439 +2.7%)
- Avg. days since last verification: 393 -> 402 (+9 +2.3%)
- Merchants boosted: 12 -> 11 (-1 -8.3%)
- Total boost duration: 600 -> 390 (-210 -35.0%) days
- Comments posted: 30 -> 34 (+4 +13.3%)
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 🇧🇷 Brazil 601 2 597 2 0 🇺🇸 United States of America 484 221 238 25 2 🇨🇭 Switzerland 97 7 75 15 3 🇸🇻 El Salvador 44 5 35 4 0 🇨🇿 Czechia 32 6 13 13 1 🇿🇦 South Africa 28 0 25 3 0 🇮🇹 Italy 24 2 20 2 0 🇲🇿 Mozambique 23 2 21 0 0 🇬🇪 Georgia 21 3 17 1 0 🇦🇷 Argentina 19 0 19 0 0 Community Activity 📈
Here are this month's most active communities in terms of merchant data editing.
Name Total Created Updated Deleted Comments 🇧🇷 Bitcoin é aqui! 210 0 210 0 0 🇧🇷 Porto Alegre - Go BTC 39 0 39 0 0 🇺🇸 Colorado Bitcoin 22 19 3 0 1 🇧🇷 Horizonte Bitcoin 22 0 22 0 0 🇸🇻 Bitcoin La Laguna 21 0 20 1 0 🇲🇿 Bitcoin Famba 21 1 20 0 0 Active Taggers 🏆
Here are this month's most active contributors adding and updating merchant data on BTC Map.
📣 Shoutout to the top 3:
- 🥇 Comino with 370 edits
- 🥈 Rockedf with 332 edits
- 🥉 RoseBTCmap with 301 edits
Name Total Edits Created Updated Deleted Comino 370 27 295 48 Rockedf 332 313 16 3 RoseBTCmap 301 274 26 1 BTCGVA 153 13 106 34 SherbetS 94 94 0 0 confusedbuffalo 84 0 81 3 btccuracao 51 0 51 0 Bronrolonw 39 0 34 5 Satoshi Team 26 25 1 0 canfe 25 11 0 14 BoatingAccident 25 0 5 20 BitcoinLarry 22 15 7 0 Genesisvaleria 21 1 17 3 btcitnet 16 3 0 13 Find current and historical stats on the Tagger Leaderboard.
BTC Prague 🇨🇿
The team exhibited at BTC Prague 2026, the largest Bitcoin conference in Europe. It was great to have more than two of us together in one place for the first time in a while — we met users face-to-face, heard their stories, and received a ton of thanks and feedback that will help shape the next few months.
Club Orange 🍊
Club Orange has joined the BTC Map ecosystem as a new sponsor, integrating with us to auto-list every merchant that signs up on their platform. New Club Orange merchants now get dual-listed on both Club Orange and BTC Map from a single signup.
Sign-up as a Club Orange merchant here!
Web App 🕸️
June was a big month for the Web App with 41 merged PRs. The headline features are the merchant detail redesign and the new merchant heatmap layer.
- Merchant detail redesign -- the merchant panel was overhauled with a cleaner layout, better sectioning, Lightning tip support, redesigned boost card copy, circular badge counts, and improved mobile width.
<img src="" alt="Screenshot of the redesigned merchant detail panel" width="50%">
- Merchant heatmap -- a new heatmap overlay shows concentration of bitcoin-friendly merchants, making it easy to spot adoption hotspots at a glance.
- Nostr auth -- full account authentication via Nostr, including a Nostr profile avatar in the UserMenu. - Verified filter -- filter the map to show only recently verified merchants. - Search simplification -- the search UX was streamlined with fewer clicks to get to results. - Nearby list -- the nearby panel now loads earlier and reveals the list more intuitively. - Menu & layers -- top-right controls were consolidated into a single Menu with layers and filters modals. - Boost fixes -- clearer error handling for failed invoice generation, retry button guarded against double-fire. - Apps page -- Club Orange and Zapstore were added as new app listings. - RPC-free at last -- the tagging-issues and leaderboard pages were migrated from deprecated RPC endpoints to the public REST API, and stale RPC naming was cleaned up throughout the codebase. - Form location input -- coordinates can now be entered manually on the add-location form. - Deep link fixes -- map deep links now correctly select the target merchant. - Mobile improvements -- iOS Safari zoom clipping fixed, safe-area bottom clearance, tooltips replaced with static helper text, and many other layout fixes. - Community contributions -- MateoGrifsha fixed mobile form tooltips, b0rgbart3 fixed activity page IDs and comment line breaks, LighthouseFR contributed Dutch translations.
Infrastructure ⚙️
It was a big month on the API too, with over 50 commits. Here are the highlights:
- Dashboard RPC -- a new internal
dashboardRPC method powers the BTC Map Dashboard, returning total merchants, log volume, storage stats, LND stats, and top-10 busiest REST endpoints.- Area images -- a dedicated
image.dbtable and/v4/area-imageREST endpoint with type and dimension hints replaced the scattered image handling.- Place import stats -- import origins were moved from hardcoded constants to a DB table, with per-origin success/failure stats exposed on the dashboard.
- Auth RPC redesign -- new signup/signin/signout flow, scoped tokens, session management (get_api_keys, revoke_api_key), and
whoamiendpoint. Anonymous access is now limited to signin/signup only.- Nostr identity endpoints -- users can link, view, and unlink a Nostr npub to their BTC Map account via PUT/GET/DELETE
/v4/users/me/nostr.- Native CORS handling added, removing reliance on the reverse proxy.
- Security -- HTTP/1 requests with ambiguous Content-Length/Transfer-Encoding framing are now rejected to prevent request smuggling.
- DB renames --
btcmap.dbandimages.dbrenamed tomain.dbandimage.db.- Deps bumped -- geojson bumped to 1.0.0, Rust toolchain unpinned, TLS configs updated.
CLI
The btcmap-cli gained new auth API support (
signout,signinwithapi_keyfield),generate-area-iconsandset-area-imagecommands, an install script, and dashboard wrappers.Android App 🤖
- Wiki URLs were migrated from gitea.btcmap.org to wiki.btcmap.org.
Credits 🫶
Thanks to everyone who contributed to the project this month, including the Shadowy Supertaggers:
- Hannes / escapedcat -- massive web app contributions across merchant redesign, Nostr auth, heatmap, search, modals, and dozens of fixes.
- Igor Bubelov -- API dashboard RPC, area images, auth redesign, Nostr identity endpoints, CORS, security, CLI, Android wiki migration, and admin auth migration.
- Nathan / dadofsambonzuki -- web app heatmap, apps page, API vendor additions, Android PR.
- Bart / b0rgbart3 -- web app activity page fixes, comment preservation, location form input.
- Edwin Comino / LighthouseFR -- Dutch translations and web app PRs.
- MateoGrifsha -- mobile form tooltip fix.
- Comino, Rockedf, RoseBTCmap, and all the active taggers listed above.
Analytics 📊
Our June website stats are as follows:
Check out the BTC Map Analytics Dashboard. Track our growth and see where users are coming from in real time.
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.





- Nostr auth -- full account authentication via Nostr, including a Nostr profile avatar in the UserMenu.
- Verified filter -- filter the map to show only recently verified merchants.
- Search simplification -- the search UX was streamlined with fewer clicks to get to results.
- Nearby list -- the nearby panel now loads earlier and reveals the list more intuitively.
- Menu & layers -- top-right controls were consolidated into a single Menu with layers and filters modals.
- Boost fixes -- clearer error handling for failed invoice generation, retry button guarded against double-fire.
- Apps page -- Club Orange and Zapstore were added as new app listings.
- RPC-free at last -- the tagging-issues and leaderboard pages were migrated from deprecated RPC endpoints to the public REST API, and stale RPC naming was cleaned up throughout the codebase.
- Form location input -- coordinates can now be entered manually on the add-location form.
- Deep link fixes -- map deep links now correctly select the target merchant.
- Mobile improvements -- iOS Safari zoom clipping fixed, safe-area bottom clearance, tooltips replaced with static helper text, and many other layout fixes.
- Community contributions -- MateoGrifsha fixed mobile form tooltips, b0rgbart3 fixed activity page IDs and comment line breaks, LighthouseFR contributed Dutch translations.