bitchat
bluetooth mesh chat, IRC vibes
Bitchat pairs Bluetooth mesh with Nostr for chat
Two transports under the hood: a local Bluetooth mesh that routes messages up to seven hops offline, and the Nostr protocol for global reach. No accounts, no phone numbers, no central servers.
An app built on two transports
Bitchat describes itself as a decentralized peer to peer messaging app with a dual transport architecture. Local Bluetooth mesh networks handle offline communication, while the internet based Nostr protocol covers global reach. There are no accounts, no phone numbers, and no central servers. The README sums up the vibe as the side groupchat. The app is written in Swift and released under the Unlicense.
Getting a copy you can trust
A section on getting a trustworthy copy matters more here than usual. The README says to install from the App Store or build from source you have verified, because a compiled build from anywhere else cannot be verified. It points to a per release hash manifest for checking source. The reason is stated directly: this repository has been the target of takedown demands, and when a repository or releases page disappears, mirrors appear that nobody can check.
How the mesh routes messages
The offline half is a Bluetooth mesh network. Communication is direct peer to peer within Bluetooth range, with multi hop relay routing through nearby devices up to a maximum of seven hops. No internet is required, which the README frames for disaster scenarios. The mesh uses Noise Protocol encryption with forward secrecy for live sessions, a compact binary protocol for Bluetooth LE constraints, automatic peer discovery, and battery optimized duty cycling.
The Nostr half
The internet half rides on Nostr relays, with a network of over 440 relays distributed globally. Location based channels use geohash coordinates, and ephemeral keys give a fresh cryptographic identity per geohash area. One detail is worth flagging: BitChat's private envelope format is proprietary and not NIP-17, NIP-44, or NIP-59 compatible. Private payloads travel inside kind-1059 events with a BitChat specific XChaCha20-Poly1305 construction, so it only interoperates with other BitChat clients.
Features that stand out
The feature list is long. Location based channels work at several geohash precisions, from block and neighborhood up to city, province, and region. Intelligent routing picks Bluetooth first and falls back to Nostr. There are IRC style commands like /slap, /msg, and /who. The app is a universal build for iOS and macOS, offers an emergency wipe on a triple tap, and optimizes with LZ4 message compression, adaptive battery modes, and tuned networking.
Editorial conclusion
The README is unusually candid about trust: only the App Store build or a source build you verify counts, because the repository has faced takedown demands and untrusted mirrors can appear when releases disappear.
Community notes