Read on Nostr instead?

Summary ๐Ÿ“

The map finished October with 27,330 merchants, up 182 on the month, and 29,721 places in total including exchanges and ATMs.

Places verified in the last year fell again, from 15,957 to 15,684, and the average place is now 475 days past its last check, 18 days further out than at the end of September. Verification is still losing ground to growth. ๐Ÿ˜ฅ Please help us verify places in your town, community or country - Join Us!

October was the month the Android rewrite landed. Compose Multiplatform replaced the old view layer, and the same screens now run as a desktop app on Linux, Windows and macOS. The web app gained personal notes on the map and photos on every place.

Most of the month’s editing was in the United States, with Switzerland second, and one new community joined in Zambia.

Key Figures ๐Ÿ“ˆ

Last three months

Metric August September October
Merchants 26,914 27,148 27,330
Places 29,389 29,622 29,721
Verified (1y) 16,243 15,957 15,684
Days since check 438 457 475
Merchants boosted 12 24 21
Total boost duration 935 2,085 1,935
Comments 26 28 23

Change

Metric 1 month 3 months 12 months
Merchants +182 (+0.7%) +755 (+2.8%) +10,631 (+63.7%)
Places +99 (+0.3%) +660 (+2.3%) +11,180 (+60.3%)
Verified (1y) โˆ’273 (โˆ’1.7%) โˆ’1,176 (โˆ’7.0%) +5,883 (+60.0%)
Days since check +18 (+3.9%) +57 (+13.6%) +61 (+14.7%)
Merchants boosted โˆ’3 (โˆ’12.5%) +7 (+50.0%) โˆ’4 (โˆ’16.0%)
Total boost duration โˆ’150 (โˆ’7.2%) +330 (+20.6%) +1,065 (+122.4%)
Comments โˆ’5 (โˆ’17.9%) โˆ’2 (โˆ’8.0%) โˆ’16 (โˆ’41.0%)

Charts

Graph showing merchant adoption over the last month

Graph showing merchant adoption over the previous 3 months

Current figures are on the BTC Map dashboard.

Merchants are shops and services; places also counts exchanges and ATMs; verified (1y) covers the last twelve months; days since check is the average wait, so higher is worse; boosted and comments are that month’s own activity.

Web App ๐Ÿ•ธ๏ธ

101 pull requests were closed on the web app in October, 94 of them merged. Accounts took most of the month, and places gained two new kinds of content.

The account page is new: rename yourself, link a Nostr key, change your password. Sign-in now accepts a NIP-46 signer app, so a remote signer approves the login and the key never reaches the browser. Every login path runs through one module, the API token is revoked on logout, and the old throwaway sessions are gone. Sign-up says when a username is taken instead of failing silently.

Place photos went from report evidence to something you browse. A strip on the merchant page, a full viewer with captions and a filmstrip, links to a single photo, uploads credited to their author, a My photos page, and moderation for admins.

Notes arrived on the map as well: drop a text pin anywhere, private by default, with a switch to publish it.

The rest is smaller. The four public forms share one captcha gate and one failure path, dates follow the app language, and modals keep Tab focus inside them. The RTL text plugin is gone because MapLibre draws it, and the build moved to SvelteKit 3 and Node 24. The project’s Lightning address, zaps@btcmap.org, now pays into its own LNbits wallet.

Android App ๐Ÿค–

Android took 203 commits in October, building upon the v1.2.0 that went out on 30 September.

Much of this month’s “Android” activity was the migration to Compose Multiplatform in order to lay the foundations for a multi-OS client with a shared codebase. The same UI will ultimately run as native apps across Android, iOS, Linux, Windows and macOS. Here is LInux:

The BTC Map app running as a Linux desktop build, showing Bitcoin merchants on a map of Phuket

Notes were introduced as a fourth marker layer next to merchants, events and exchanges, with a My notes screen to edit, publish or delete them. Events can also now be submitted from the app, with a My events list, revoking a pending submission, and a review queue for event managers.

Area managers can verify an area and edit its name and description, while admins get user management and photo moderation.

The map moved to MapLibre Compose 0.20.0 and closed most of the gap with the old Google Maps build. There is a compass when the view leaves north, a tilt setting, a remembered camera and coordinate search. OpenStreetMap results now sit under the local ones.

Infrastructure โš™๏ธ

The API took 59 commits and closed six pull requests, five of them merged. Much of it was the v4 REST API catching up with the RPC layer, since the apps never speak RPC.

Notes got a table and a full set of endpoints, with public notes geo-searchable, private ones visible only to their author, and the owner list supporting incremental sync. Place photos became a store of their own: upload, delete by the uploader or an admin, a moderation list of recent uploads, and positions so an admin can reorder them. Events carry a review status and a submitter, and a pending submission can be revoked by whoever made it. Areas can be created and updated over REST, verified_at is in the response and the delta sync, and one area’s report history comes back typed. Admins can search and update users, and the infrastructure dashboard moved to v4.

Access tokens now record last_used_at, so an unused or leaked one can be spotted. A taken username returns 409 or 400 rather than a generic failure, and a Nostr user who signs up gets a BTC Map account with the key linked. The trending lists stopped counting retired areas, so a community that has been removed can no longer rank. OpenGraph maps are rendered in-house now: the staticmap crate went, and with it an old rustls and six RUSTSEC advisories.

The admin app now signs in on the client against the API, including a NIP-46 signer, and honours area-scoped roles. The CLI’s area get, add and update moved to the v4 REST API, with area update replacing set-area-tag.

And a new Overpass server joined our fleet!

Communities and Contributors ๐Ÿซ‚

One community joined in October: The Sats and Stories Club in Zambia. The map now has 690 communities.

Most of the month’s editing was in the United States, with 452 changes, 230 of them new places. Switzerland had 189 changes and nearly all were updates to places already on the map, 67 of them from Einundzwanzig Ostschweiz. Brazil had 111 changes, almost all updates, and South Africa 93.

Some of the month was tidying. Austria’s 48 changes included 40 deletions, Spain’s 47 included 36, and the Bitcoin Austria community account removed 40 places.

Country totals at the end of the month: the United States has 10,732 places with 89% verified in the last year, South Africa 2,752 at 59%, and Brazil 2,231 at 19%, down from 26% at the end of September.

Among communities, Proof of Bitcoin has 933 places, BitPlebs Los Angeles 442 at 93%, and Mi Primer Bitcoin 435 at 6%.

Comino led October with 322 edits, RoseBTCmap followed with 176 (96 of them new places) and Rockedf with 156 (138 new). Thanks to them, and to everyone else in the tables below! ๐Ÿซ‚

Detailed Tables ๐Ÿ“Š

The month’s figures in full.

Country Activity ๐Ÿ“ˆ

Countries ranked by merchant data edited during the month.

Name Total Created Updated Deleted Comments
๐Ÿ‡บ๐Ÿ‡ธ United States of America 452 230 152 70 4
๐Ÿ‡จ๐Ÿ‡ญ Switzerland 189 32 152 5 1
๐Ÿ‡ง๐Ÿ‡ท Brazil 111 12 95 4 0
๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa 93 1 88 4 0
๐Ÿ‡ธ๐Ÿ‡ป El Salvador 60 5 49 6 0
๐Ÿ‡จ๐Ÿ‡ฟ Czechia 59 2 57 0 3
๐Ÿ‡ฎ๐Ÿ‡น Italy 57 4 46 7 0
๐Ÿ‡ฆ๐Ÿ‡น Austria 48 0 8 40 0
๐Ÿ‡ช๐Ÿ‡ธ Spain 47 1 10 36 1
๐Ÿ‡จ๐Ÿ‡ด Colombia 45 7 38 0 0

Community Activity ๐Ÿ“ˆ

The same, by community.

Name Total Created Updated Deleted Comments
๐Ÿ‡จ๐Ÿ‡ญ Einundzwanzig Ostschweiz 67 20 46 1 0
๐Ÿ‡ฆ๐Ÿ‡น Bitcoin Austria 48 0 8 40 0
๐Ÿ‡ง๐Ÿ‡ท Bitcoin Amantikir 45 7 37 1 0
๐Ÿ‡ฟ๐Ÿ‡ฆ Proof of Bitcoin 44 0 44 0 0
๐Ÿ‡ธ๐Ÿ‡ป Bitcoin Berlรญn SV 37 0 32 5 0
๐Ÿ‡จ๐Ÿ‡ด Satoshi Team - Antioquia 35 1 34 0 0
๐Ÿ‡บ๐Ÿ‡ธ BitPlebs Los Angeles 30 14 14 2 0
๐Ÿ‡จ๐Ÿ‡ฟ Jednadvacet Praha 28 2 26 0 3
๐Ÿ‡จ๐Ÿ‡ด Cafeteros Bitcoiners 24 1 23 0 0
๐Ÿ‡ณ๐Ÿ‡ฑ Arnhem Bitcoin City 22 0 22 0 4

Country Leaderboard ๐Ÿ“Š

Where countries stood when the month closed, ranked by how many places they have. The up-to-date column is the share verified within the last year. BTC Map’s country leaderboard shows the same numbers ordered by its verification-weighted score.

Name Places Verified (1y) Up-To-Date
๐Ÿ‡บ๐Ÿ‡ธ United States of America 10,732 9,510 89%
๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa 2,752 1,614 59%
๐Ÿ‡ง๐Ÿ‡ท Brazil 2,231 419 19%
๐Ÿ‡ธ๐Ÿ‡ป El Salvador 1,306 310 24%
๐Ÿ‡ฎ๐Ÿ‡น Italy 1,062 152 14%
๐Ÿ‡จ๐Ÿ‡ญ Switzerland 780 426 55%
๐Ÿ‡จ๐Ÿ‡ฆ Canada 724 310 43%
๐Ÿ‡ฉ๐Ÿ‡ช Germany 615 175 28%
๐Ÿ‡ฒ๐Ÿ‡ฝ Mexico 562 56 10%
๐Ÿ‡น๐Ÿ‡ญ Thailand 489 297 61%

Community Leaderboard ๐Ÿ“Š

The same for communities, frozen at the close of the month. The community leaderboard is the live version.

Name Places Verified (1y) Up-To-Date
๐Ÿ‡ฟ๐Ÿ‡ฆ Proof of Bitcoin 933 579 62%
๐Ÿ‡บ๐Ÿ‡ธ BitPlebs Los Angeles 442 410 93%
๐Ÿ‡ธ๐Ÿ‡ป Mi Primer Bitcoin 435 25 6%
๐Ÿ‡ฟ๐Ÿ‡ฆ Bitshack 391 270 69%
๐Ÿ‡ฟ๐Ÿ‡ฆ Bitcoin Cape Town 377 186 49%
๐Ÿ‡บ๐Ÿ‡ธ Colorado Bitcoin 298 276 93%
๐Ÿ‡บ๐Ÿ‡ธ Bay Area Bitcoiners 296 279 94%
๐Ÿ‡จ๐Ÿ‡ญ Lugano Plan B 262 79 30%
๐Ÿ‡ฌ๐Ÿ‡ช Bitcoin Movement Georgia 223 56 25%
๐Ÿ‡ง๐Ÿ‡ท Bitcoin รฉ aqui! 222 2 1%

Active Taggers ๐Ÿ†

October’s most active contributors, by edits made.

๐Ÿ“ฃ Shoutout to the top 3:

  • ๐Ÿฅ‡ Comino with 322 edits
  • ๐Ÿฅˆ RoseBTCmap with 176 edits
  • ๐Ÿฅ‰ Rockedf with 156 edits
Name Total Edits Created Updated Deleted
Comino 322 43 259 20
RoseBTCmap 176 96 65 15
Rockedf 156 138 14 4
lxndrl 126 0 126 0
descubrebitcoin 89 1 13 75
confusedbuffalo 77 0 77 0
mapperue 48 0 48 0
BowlersMart 48 0 0 48
edgarpaniagua 37 1 31 5
Bitcoin Amantikir 32 7 24 1
Mind09 21 0 18 3
Bitcoin Babies 17 1 10 6
Omnific 15 0 15 0
Michele Cati 15 0 15 0
BTCGVA 15 0 12 3

Find current and historical stats on the Tagger Leaderboard.

New Communities ๐Ÿซ‚

The map now has 690 communities.

Analytics ๐Ÿ“Š

Our October 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 – place photos on the web app (viewer, captions, deep links, My photos, moderation), the account page, the NIP-46 sign-in plumbing and one login module, token revocation on logout, personal notes on the web map with their incremental sync, comments from the merchant drawer, one captcha gate across the forms, the move to SvelteKit 3 and Node 24, and the API’s place image and notes endpoints.
  • Igor Bubelov – the Compose Multiplatform migration and the desktop app with its packaging, notes and event submission in the app, area and user management, the API’s notes, place image, event review, area and user endpoints plus the infrastructure dashboard, the dependency upgrades and the in-house OpenGraph renderer, the CLI’s move to v4, and the fleet kernel patching and backup repair.
  • Nathan / dadofsambonzuki – NIP-46 sign-in on the web app, kind:0 profile lookups on purplepag.es, zaps@btcmap.org routed to the project’s own LNbits wallet, the media cleanup, the admin app’s client-side sign-in, and the fix that keeps retired areas out of the trending lists.
  • grandmaclaw-bot – comments from the merchant drawer and the comment funnel events.
  • Petriluck – dates in the app language.
  • Comino, RoseBTCmap, Rockedf, 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.