1Your account is made on your phone
On first launch, your phone picks 12 random words. Everything else is calculated from them, on the phone.
Seven diagrams in the order you meet them: setting up, adding someone, chatting, sending while they’re offline, calling, groups, and keeping your chats. For the plain-language version, see How Wasla keeps you safe.
No phone number, no server account. Your keys are made on your phone and never leave it.
On first launch, your phone picks 12 random words. Everything else is calculated from them, on the phone.
Before a message is encrypted, Wasla looks for things you might regret sharing, on the phone only.
Nobody can reach you until you say yes, and strangers can’t even see you exist.
Share it as an invite link or a QR code. The part after # never reaches any server.
The request is signed by the sender. Their name inside is sealed so only you can read it, and padded so its length gives nothing away.
You prove the email with a code. The server keeps a fingerprint and a masked hint, never the address.
Both phones show the same 60-digit safety number, made from both IDs. Compare it face to face or on a call.
Two phones. A secret that is never sent. Only Sara’s phone can read what Ahmed writes.
Every time two phones start talking, each makes a brand-new temporary key pair, kept only in memory.
Each phone signs its temporary public key with its permanent identity key. The signed note says who it’s from, who it’s for, when, and a random number.
With X25519, each phone mixes its own private key with the other’s public key. They get the same result. It is never sent.
The secret goes through HKDF together with both IDs and both public keys. Out come two chain keys, one for each direction.
Each chain is a ratchet that only turns forward. Every message gets its own key, which is deleted after use.
The message is encrypted with XSalsa20 and sealed with Poly1305. Any change on the way breaks the seal.
Every message carries a counter. Copies are refused, and late messages still open.
Once the handshake is done, sealed messages travel over a direct encrypted connection (WebRTC) between the two phones.
Sessions live only in memory. When Wasla closes or the connection drops, all temporary keys are wiped. Next time, a new handshake starts.
Every way a message reaches a phone that isn’t open, and none of them lets anyone read it or keeps it on a server.
Short texts (about 1,500 Latin or 800 Arabic characters) ride inside the push, sealed to Sara’s delivery key.
Ahmed sends a photo and Sara’s app is closed. The push brings a blurred preview. In the same moment, Sara’s phone opens a short, direct connection to Ahmed’s phone, which is most likely still in Wasla, and the photo comes straight from his phone, sealed to Sara. The relay only introduces the two phones; the photo never passes through it.
If Ahmed sent it and closed Wasla straight away, his phone can’t answer. The photo stays on his phone, encrypted, until both phones are online, and then goes phone to phone.
Ticks are receipts from Sara’s phone, encrypted like messages. They don’t need both apps open at the same time.
The server rings the phone. The call itself goes straight between the two phones.
The invite travels inside the encrypted chat. If Sara’s phone is asleep, the relay wakes it with a sealed push.
Each phone asks a public address service (STUN) what its own internet address is, then shares the answer inside the encrypted chat.
The call setup, including each phone’s DTLS fingerprint, travels only inside the end-to-end channel. The phones then run a DTLS handshake to make the call keys (SRTP).
Every call reserves a second, empty video channel. Sharing puts your screen into it, protected by the same call keys, so it goes straight to the other phone and your camera keeps its own channel, on or off.
No group exists on the server. Membership is a signed record every phone checks for itself; every message is signed by its author.
A reaction, an edit or “delete for everyone” is a small signed message naming the one it changes. Each phone applies it only if the signature is the right person’s: anyone may react, only the author may edit or delete. They’re never pushed as notifications; they arrive when the phones next connect.
A member who isn’t your contact is shown as ~ their name, never as a name from your contacts, so nobody can pass for someone you know. Their phone may only send group frames to yours; statuses, calls and one-to-one messages stay contacts-only.
Your 12 words are the only key. Apple and Google store boxes they can’t open.
The new phone shows a QR code holding a random 256-bit key. It travels only through the camera.