How it works
Direct first. A sealed mailbox only when it has to be.
Most encrypted messengers send everything through a server and encrypt it so the server cannot read it. Nex tries not to involve a server at all, and when it must, the server’s job is to hold an opaque blob for as short a time as possible.
The three states of a message
Step 1
Direct, when both of you are online
Your device finds theirs and opens an encrypted connection straight to it. Nothing is stored anywhere in between, because there is no in-between. If the two devices cannot reach each other directly — most home networks make that hard — the packets are bounced through a relay that carries them without being able to open them, and the interface says "relayed" rather than pretending it was direct.
Step 2
A sealed mailbox, when they are not
Phones sleep and laptops close. When the other device is unreachable, your device encrypts the message for them and leaves it in a mailbox. The mailbox receives bytes it cannot read, padded so their length says as little as possible. It has no key, and no key ever passes through it.
Step 3
Deleted on acknowledgement, not on read
When their device collects the message it sends back an acknowledgement, and the mailbox deletes it. Deletion is triggered by that acknowledgement rather than by the fetch, so a client that crashes half way through a download does not lose the message. Anything nobody ever collects is swept after fourteen days.
What the mailbox operator can see
This is the part that deserves precision rather than reassurance. A mailbox that holds your sealed messages is not nothing — it is simply much less than a server that holds your conversations.
| The operator can see | The operator cannot see |
|---|---|
| That a particular queue received something, how large it was, and roughly when. | The content of any message. It arrives already sealed and is never opened. |
| That the queue was emptied, and when. | Who sent it. Each item is sealed to the recipient device under a one-time key, so the sender is not named anywhere the server can read. |
| The network address that deposited or collected mail, at the moment it connected. | Which conversation it belongs to. The conversation identifier is inside the sealed layer. |
| How much traffic the service handles in total. | Anything after delivery. The item is deleted on acknowledgement, so there is no archive to hand over. |
| Message boundaries in any useful detail — payloads are padded to fixed sizes, and acknowledgements are now the same size as messages. |
Why the phone behaves differently
A phone cannot hold a peer-to-peer connection open in the background — the operating system will not allow it.
So the mobile client is a mailbox client by design: it is woken by a push notification, it collects what is waiting, and it decrypts on the device. The push service learns that something arrived, never what. That is the same trade every encrypted messenger on iOS makes; it is stated here rather than left for you to discover.