SimpleX Chat is a chat client. Your account has no identifier: no phone number, no email address, no username, no random number. Its own documentation says that the operators cannot even count their users. SimpleX Chat has no user directory, so nobody can look you up. You begin a conversation by sending the other person a one-time invitation link or QR code through some other channel. If someone intercepts the link it stops working the moment your contact confirms. If you want strangers to be able to reach you, you can publish a reusable contact address.
Encryption and queues
Each conversation uses two one-way queues on different relays, one queue for each direction. Each queue has its own random identifiers and keys. The conversation is protected by a double ratchet with X3DH key agreement, and each queue is protected by a second layer. Transport is over TLS 1.3, and SimpleX Chat pads each block to a fixed 16 KB. Trail of Bits audited the code twice. No identifier is repeated between conversations, so two contacts cannot tell they are writing to the same person.
Groups and calls
SimpleX Chat supports text and voice messages, group chats, file transfer and voice/video calls. The calls are still beta. Groups are only in the local database of each member. There is no server that stores them. When you post to a group, SimpleX Chat sends one message to each member.
Profiles and terminal client
An incognito mode generates a random display name for each new contact. Hidden profiles are behind a password. The terminal client does the same jobs through slash commands: one command prints an invitation, another sends a file that the recipient must accept.
Limitations
The relay holding your incoming queue can see the sender’s IP address. Use Tor for contact with untrusted parties; on Android this means Orbot as a SOCKS proxy. SimpleX Chat polls a number of relay connections, and this can sometimes mean that notifications on iOS and Android are delayed or not received at all. The desktop build stores the database passphrase in cleartext in its settings file. All history lives in a local encrypted database, and moving to a new device means exporting it manually. Relays delete messages on delivery, so if a device is lost and it has no export then the message history is lost forever.





