Offline Protocol vs Bitchat

Bitchat is an open-source messaging app that sends end-to-end encrypted messages across nearby phones over a Bluetooth mesh, with Nostr as an internet path, and asks for no account or phone number. It is an app, not an SDK: there is no library for building it into your own product. Offline Protocol is the SDK for that job, with a Bluetooth LE mesh between phones plus MLS (RFC 9420) group encryption, Ed25519 device identity, replicated documents, and service discovery. To message people nearby today, use Bitchat. To build an app like it, use Offline Protocol.

What each one covers
Offline Protocol
Bitchat
Bluetooth mesh between phones
BLE, up to 8 hops
BLE, up to 7 hops
Internet path when there is one
Internet relay, Nostr
Nostr
An SDK for your own app
React Native, Rust, Python
App only
End-to-end encryption
MLS, RFC 9420, groups
Noise XX sessions
Identity with no account
OfflineID, Ed25519
Keys on the device
Replicated documents
Map, list, text, counter
No
Service discovery without a server
Advertise, discover, invoke
Messaging only
Open source
AGPL-3.0
Unlicense, GPL-3.0

Covers itPartly, or with conditionsNot part of the product Taken from each product's own documentation. The detailed table below carries the specifics.

The specifics

Offline Protocol compared with Bitchat across form factor, platforms, transports, relay, encryption, identity, and licensing.
Capability Offline Protocol Bitchat
Form factor SDK you build into your own app Messaging app for iOS, macOS, and Android
Platforms iOS and Android through React Native; Rust; Python built from source iOS and macOS app; Android app
Transports BLE mesh, internet relay, and Nostr or Reticulum through infrastructure you provide Bluetooth mesh; Nostr for internet messaging; Wi-Fi Aware on Android
Relay Up to 8 hops with ack, retry, deduplication Up to 7 hops
Encryption MLS (RFC 9420) for every session and group Noise XX sessions with Ed25519 signatures, per its whitepaper
Identity Ed25519 OfflineID, verified device to device Keys on the device, no account or phone number
Beyond messaging Replicated documents, service discovery and invocation Messaging
Licensing and cost
Mesh SDK free under AGPL-3.0, including in production. Closed-source and App Store apps need the commercial license; contact us for pricing. Hosted services from $0 (Free), $99 a month (Pro), $499 a month (Scale). Local mesh traffic is never metered. Pricing
Free and open source: Unlicense for iOS and macOS, GPL-3.0 for Android. Bitchat on GitHub

How they differ

Bitchat (github.com/permissionlesstech/bitchat) is a messaging app for iOS, macOS, and Android. It relays end-to-end encrypted messages across nearby phones over Bluetooth, up to 7 hops, and uses Nostr when an internet path exists. Live sessions use the Noise XX handshake, and there are no accounts or phone numbers. The iOS and macOS app is released under the Unlicense and the Android app under GPL-3.0.

Bitchat is a product people install, not a library. There is no SDK for putting its mesh inside another app, so a team that wants the same behavior in its own product has to write it or start from a mesh SDK. Offline Protocol is that SDK: a Rust core with a React Native binding for iOS and Android, a Bluetooth LE mesh with up to 8 hops, MLS (RFC 9420) group encryption, and an Ed25519 OfflineID that other devices verify without a server.

Offline Protocol also carries more than chat. Replicated documents let devices edit shared state offline and merge it when they meet, and service discovery lets one device call a capability on another across the mesh. Nostr and Reticulum are optional paths through infrastructure you provide, so a deployment can add an internet path the way Bitchat does with Nostr.

When to choose each

Choose Bitchat if you want a ready-made app for messaging people nearby without internet or an account. Choose Offline Protocol if you are building your own app and want a Bluetooth mesh like Bitchat's inside it, with MLS group encryption, device identity, and shared documents.

Choose Bitchat when

You or your users need a messenger today, not a component: install the app, talk to people nearby over Bluetooth, and use Nostr when there is internet. No account, no phone number, no code to write.

Choose Offline Protocol when

You are building a product that has to work without connectivity and want the mesh inside your own app: encrypted group messaging, device identity that verifies offline, replicated documents, and service discovery from one SDK.

Start with the quickstart, or see how the mesh works in offline messaging.

Offline Protocol vs Bitchat FAQ

Can I build an app like Bitchat?

Yes. Bitchat is an app, not a library, so its mesh cannot be added to another product. Offline Protocol is an SDK for that job: a Bluetooth LE mesh between phones with up to 8 hops, MLS (RFC 9420) group encryption, an Ed25519 identity per device, and an optional Nostr path, in a React Native package for iOS and Android. Start with the quickstart.

Is there a Bitchat SDK?

No. Bitchat publishes its iOS, macOS, and Android apps as open-source repositories, not as an SDK. Offline Protocol is a mesh SDK you install from npm or crates.io.

How does Bitchat's encryption compare with Offline Protocol's?

Bitchat's whitepaper describes the Noise XX handshake (Curve25519, ChaCha20-Poly1305, SHA-256) for live sessions, with Ed25519 signatures on packets. Offline Protocol encrypts every session and group with MLS (RFC 9420), the IETF standard for group key agreement, so relays forward ciphertext they cannot read and the group rekeys when its membership changes.

How do licensing and cost compare with Bitchat?

The Offline Protocol mesh SDK is free under AGPL-3.0-only, including in production, and local mesh traffic is never metered on any plan. Closed-source apps and apps distributed through the Apple App Store need the commercial license, which has no published price, so contact us for pricing. Hosted services are optional and run on Free ($0), Pro ($99 a month), Scale ($499 a month), and Enterprise plans. Bitchat is free and open source: the iOS and macOS app under the Unlicense and the Android app under GPL-3.0. See Bitchat on GitHub.

Build the mesh into your own app. MLS by default. Identity built in.