Security

Private by design.

Private conversations are end-to-end encrypted by default. The keys that can read them are created on your devices.

Private conversations

Direct chats and Saved Messages are always end-to-end encrypted. Group messages are end-to-end encrypted by default. Private channels are too.

In those conversations, photos, video, voice messages, files, and stickers are encrypted on the device before they are uploaded.

Group messages use a sender-key design. A device encrypts for the group, and the key material goes to members' devices. The server does not keep a readable copy of that conversation key.

Public channels are not end-to-end encrypted. They are meant to be read by subscribers, and the service can see that content.

Calls

One-to-one voice and video are encrypted between the people on the call. Zam Zam does not record the call. A relay may carry the encrypted media and is not given the keys used to read it. This is standard call encryption, not the same design as message end-to-end encryption.

Group call media is end-to-end encrypted by default. The media servers route the call and do not hold the room key in readable form.

Screen sharing works on desktop and Android. It is not available on iPhone.

Keys and devices

Each device creates its own keys. Zam Zam stores public key material so another device can start an encrypted conversation. Private keys stay on the device.

Readable conversation keys are not stored on the servers.

Signing in on another phone or computer adds a device. A QR link-a-device flow is not available yet.

A new device can read messages sent after it joins. Older encrypted messages are not restored, because encrypted backup is not offered.

Removing a device revokes it. Conversations it belonged to move to a new encryption epoch, so that device should stop receiving new messages.

What end-to-end encryption does not hide

Operating a messenger still requires some information the service can see.

Your account: phone number, username, and display name, and a profile photo if you set one. The phone number is not shown on your public profile.

Devices and sessions: platform, device name, app version, and the fact that a session is active.

Push tokens, so a notification can reach a phone. By default the notification is a generic label such as “New message” or “Photo”. It does not include the text of an encrypted message. You can allow the sender’s name to appear. Apple or Google delivers the notification.

Delivery data for encrypted messages: which conversation a message belongs to, message identifiers, and timestamps. Not the readable contents.

Who is in a group or channel.

Public channel content, which is not end-to-end encrypted.

Story text, and the fact that a story exists. Stories expire after 24 hours and are not end-to-end encrypted.

Call setup: who is in a call, and when it starts and ends. Not a recording.

Abuse reports you choose to send. A report does not include the readable text of an encrypted message.

Contact discovery, if you use it. The app sends phone numbers so we can say which of them already use Zam Zam. That list is not stored as an address book. There is not yet a switch to hide your account from discovery. Someone who already has your number can learn that you use Zam Zam, unless one of you has blocked the other.

TLS as well

Connections to Zam Zam use TLS in addition to end-to-end encryption of private conversations. TLS protects the connection on the way. End-to-end encryption protects the private conversation from the service.

What we do not claim

Encryption is a real protection for private conversations. It is not a promise that every part of the product is invisible, or that no attack is possible.

Public channels, stories, profile information, and the service data listed above are outside that end-to-end protection.