Offline Protocol vs Berty

Berty is an open-source, privacy-first messenger built on the Wesh protocol, which works over the internet through IPFS and libp2p and nearby over Bluetooth LE, Android Nearby, and Apple Multipeer Connectivity. Wesh can be used as a Go library, and Berty's own documentation says the protocol is still being implemented and has not been thoroughly audited. Offline Protocol is a mesh SDK packaged for iOS and Android apps, with multi-hop relay, MLS group encryption, and device identity.

What each one covers
Offline Protocol
Berty
Works with no internet
BLE mesh
BLE, Nearby, Multipeer
Multi-hop relay
Up to 8 hops
Peer to peer
Internet path when there is one
Internet relay, Nostr
IPFS and libp2p
A package for mobile apps
React Native on npm
Go library; Expo package not ready
End-to-end encryption
MLS, RFC 9420, groups
End to end
Identity with no phone number
OfflineID, Ed25519
No phone number
Replicated documents
Map, list, text, counter
No
Open source
AGPL-3.0
Apache-2.0 or MIT

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 Berty and Wesh across form factor, platforms, transports, relay, encryption, maturity, and licensing.
Capability Offline Protocol Berty
Form factor SDK you build into your own app Messaging app, plus the Wesh protocol as a Go library
Platforms iOS and Android through React Native, with early native Swift and Android packages and a preview Flutter plugin; Rust; Python on PyPI; Java on Maven Central; Ruby on RubyGems; a C API; an experimental browser build iOS and Android app; Wesh in Go with a gRPC API
Transports BLE mesh, internet relay, and Nostr or Reticulum through infrastructure you provide IPFS and libp2p over the internet; Bluetooth LE, Android Nearby, Multipeer Connectivity, and mDNS nearby
Relay Up to 8 hops with ack, retry, deduplication Direct links nearby; asynchronous messaging over the internet
Encryption and identity MLS (RFC 9420), Ed25519 OfflineID End-to-end encrypted; no phone number
Maturity In active development; current release v0.31.0 Not yet thoroughly audited and partly implemented, per Berty's protocol docs
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 under Apache-2.0 or MIT. Wesh on GitHub

How they differ

Berty (berty.tech) is a messenger with no phone number and no central server, built on Wesh, an open-source asynchronous protocol. Over the internet Wesh uses IPFS and libp2p. Nearby, it uses Android Nearby on Android, Multipeer Connectivity on iOS, and Bluetooth LE between the two. Both are dual licensed under Apache-2.0 or MIT.

Wesh can be used as a Go library with a gRPC interface, so other languages can call it. Berty's documentation says the protocol has not been thoroughly audited and that some described features are not implemented yet, and its React Native package for Expo is marked as not usable yet.

Offline Protocol is packaged for app teams: a Rust core with a React Native binding for iOS and Android, installed from npm. It routes across up to 8 hops, so phones out of direct range reach each other through relays, encrypts sessions and groups with MLS (RFC 9420), and adds an Ed25519 identity per device, replicated documents, and service discovery.

When to choose each

Choose Berty if you want a privacy-first messenger with no phone number, or a Go library for asynchronous peer-to-peer messaging over IPFS. Choose Offline Protocol if you are building an iOS and Android app and need a packaged mesh SDK with multi-hop relay, MLS group encryption, and shared documents.

Choose Berty when

You want a finished privacy-first messenger, or your team works in Go and wants Wesh's asynchronous messaging over IPFS and libp2p, and the project's own maturity notes fit your timeline.

Choose Offline Protocol when

You are shipping a React Native app on iOS and Android and need relay across nearby phones, MLS group encryption, device identity that verifies offline, and replicated documents from one SDK.

See how the mesh carries messages in offline messaging, or the security model.

Offline Protocol vs Berty FAQ

Is there a Berty or Wesh SDK for React Native?

Wesh, the protocol under Berty, is a Go library with a gRPC API. Its Expo package for React Native is marked work in progress and not usable yet. Offline Protocol publishes a React Native package for iOS and Android, @offline-protocol/mesh-sdk, on npm.

How is Berty different from Offline Protocol?

Berty is a messenger app, and Wesh is its open-source protocol, using IPFS and libp2p over the internet and Bluetooth LE, Android Nearby, and Multipeer Connectivity nearby. Offline Protocol is a mesh SDK you build into your own app, with up to 8 hops of relay, MLS (RFC 9420) group encryption, Ed25519 device identity, and replicated documents.

How mature is the Wesh protocol?

Berty's protocol documentation says the protocol has still not been thoroughly audited and that its implementation is in progress, with some described features not implemented yet. Check its repository for the current status. Read the Berty protocol docs.

How do licensing and cost compare with Berty?

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. Berty and Wesh are free and open source under Apache-2.0 or MIT. See Wesh on GitHub.

A packaged mesh for your app. React Native on iOS and Android.