Talk with the certainty that
nothing is ever disclosed.
An anonymous, end-to-end encrypted messenger that keeps no account, no server-side history, and no idea who you are.
Who has never dreamed of talking with the certainty that nothing will ever be disclosed?
Android installs directly. iOS is unsigned and installs by sideloading (AltStore, Sideloadly).
The idea
Most “private” messengers still start by asking who you are. A phone number, an email, an account. That single question is the leak. BeHide removes the question: your identity is a private key that never leaves your phone, and the only thing you ever hand out is a public key.
How it works
Three ideas carry the whole design.
Your identity is a key, not an account
Signing up generates a master Ed25519 key on the device. The exchange key, the storage key and the backup key all derive from it, so one key restores your whole identity, on any phone, with no server involved.
It is stored encrypted under your passphrase (scrypt + XChaCha20-Poly1305). No password hash is kept anywhere, and there is no “forgot my password”. There cannot be.
The encryption knows nothing about the pipe
Two phones that have never met derive the same secret without exchanging it, using X25519 ECDH. Nothing secret ever travels.
What travels is an opaque envelope, sealed with XChaCha20-Poly1305 and bound to the sender's key. WebSocket relay, direct WebRTC or carrier pigeon, it changes nothing about its security.
The relay is blind
A message still has to reach the other phone, so there is a small relay, deliberately as ignorant as possible. It knows which keys are connected and that an envelope went from A to B.
It does not know the content of anything, or the name you gave a contact. That is why offline notifications are generic. Calls go further: audio and video are peer-to-peer and never touch a server.
What's in the box
Everything the app carries, and nothing it shouldn't.
◆Messaging
End-to-end encrypted, offline delivery with an at-least-once guarantee.
◆Calls
Peer-to-peer audio & video over WebRTC, with encrypted signalling.
◆Contacts
Added by QR code or token, never by phone number.
◆Identity
A single private master key. It alone restores your whole identity, on any phone.
◆At rest
Local database encrypted with a device-specific derived key.
◆Backups
Manual, encrypted, identity-bound. Restore on any phone that has your key.
◆Read receipts
Reciprocal: turn them off and you neither send nor see them.
◆Blocking
Enforced silently on arrival. The sender is never told.
Honest limitations
This is an independent project, not audited by anyone. If your safety depends on it, use Signal instead. That isn't modesty, it's the correct advice. The known gaps, stated plainly:
- No forward secrecy. Keys are static, so a leaked key makes past captured messages readable.
- No auto-lock. An unlocked session stays unlocked until you lock it or kill the app.
- Biometric unlock is convenience, not hardening. It guards a copy of the key in the OS keystore.
- Metadata is visible to the relay. It cannot read messages, but sees which keys talk, and when.
- Calls reveal your IP to the person you call. That is inherent to real peer-to-peer, by design.
- Trust is on first contact. Compare fingerprints out loud if it matters.
Built with Expo SDK 57, React Native 0.86, TypeScript (strict). The relay is a dependency-light Node service, and it's the one serving this page.