What if your phone could send secure end-to-end encrypted messages without Wi-Fi, mobile data, or even SIM card?
Welcome to BitChat — a lightweight Bluetooth mesh chat app that works entirely offline, hopping from device to device using Bluetooth Low Energy.
🔌 What Is BitChat?
BitChat is an open-source messaging app that:
- Uses Bluetooth LE mesh for offline routing (up to 300 m per hop)
- Encrypts everything with ChaCha20-Poly1305
- Stores nothing on a central server (not even login)
- Works on iOS, Android and macOS
- Runs even when cellular service is down
👉 Try Android here — no sign-up required.
📡 Why Mesh Matters
Unlike Signal or WhatsApp, BitChat can send messages peer-to-peer.
In fact, messages can hop between multiple phones, enabling offline comms in:
- 🏞 Remote regions without coverage
- 🛬 Airports, trains, undergrounds
- 🌪️ Emergencies when the Internet is out
- 🛑 Areas under censorship or surveillance
We tested multi-hop routing across 3 phones — the result? 210 meters of offline encrypted chat.
🔒 Tech Stack at a Glance
Component | Tech |
---|---|
Transport | Bluetooth LE (CoreBluetooth / Android BLE) |
Encryption | X25519 for key exchange, ChaCha20-Poly1305 for messages |
Mesh Routing | Store-and-forward with TTL & random delays |
App Size | ~6 MB (no SDK bloat) |
Privacy Model | No phone number, account, or metadata |
You can see the routing demo videos and test metrics here 👉 https://www.bit-chat.xyz/field-test/
📲 Download & Try It
Platform | Link |
---|---|
iOS | Join TestFlight (Beta) |
Android | Download APK |
macOS | brew install xcodegen && git clone |
BitChat is fully open-source — feel free to fork and contribute.
💬 Final Thoughts
We don't think BitChat replaces Signal or Matrix — but it complements them.
When everything else breaks, you still want some way to stay in touch — even if that’s via mesh-hopped BLE packets.
Got feedback or want to contribute? Drop us a line via https://www.bit-chat.xyz — or fork the project and start hacking.
Let’s decentralise the last mile, one Bluetooth hop at a time. 🔗