From the project, in plain language

What bitchat can do

This page sticks to behavior described by the Android repository and the v2.0.1 release notes. It is a reading guide, not a second manual hidden inside the app.

Two ways a message can travel

The app picks a path. Offline, that path is local radio. Online, it can be the Nostr protocol. If neither path is usable, the project says messages can wait and retry. You do not flip a “server mode” switch. You move between a room of nearby phones and a room that exists because relays on the internet are reachable.

Bluetooth mesh

Phones discover each other and relay packets without a central server. The documented cap is seven hops. Packets are small, fragmented when needed, and dropped when they have been seen before, which keeps a loop from flooding the room. A foreground service is how Android lets this continue when you leave the chat screen. Phone makers still apply their own battery limits, so a mesh that works on a table can go quiet in a pocket.

How a hop actually behaves

Wi-Fi Aware

On phones that support it, Wi-Fi Aware is a second local transport with more room for larger payloads than Bluetooth Low Energy. It is not a home Wi-Fi network and it does not require a router. Phones without the hardware stay on Bluetooth. You do not need to know which radio fired in order to read the message.

Channels and commands

Public conversation is organized in channels. The local mesh has its own shared chat. Topic channels can be protected with a password. The project documents that protection as Argon2id plus AES-256-GCM. The command style is deliberately familiar to IRC: join, message, and see who is around, using slash commands. If you have never used IRC, the on-screen controls cover the same jobs. The commands are there for people who want them.

Private messages

Direct messages on the mesh use the Noise Protocol, XX handshake, with X25519 and ChaCha20-Poly1305. That is a specific, published construction, not a slogan. It is there so the content of a private message is not readable by the phones that only relay it. When the mesh cannot reach a mutual favorite, the project says private messages can fall back to Nostr.

Geohash rooms

When you are online, a geohash turns a coarse area into a channel name. A short code covers a wide region. A longer code covers a smaller patch of map. People in that room are people who chose the same code, not a contact list. The v2.0.1 app can browse those codes on an animated globe even while drawing the globe itself offline. Joining the live room still needs the network.

How long the code should be

Tor

The Android app includes Tor through Arti for internet connectivity. That is a privacy feature for the online path. It does not make Bluetooth traffic look like something else. Radios nearby still see radio traffic.

Emergency wipe

The project documents an emergency wipe, described as a triple-tap, that clears local data. Gestures can change between versions, so confirm the control on the version you installed. A wipe clears the phone in your hand. It does not reach into other phones that already accepted a copy of a message.

Added in 2.0.1

Changelog · Get the APK