Each bot makes its own keys.
The secret half never leaves the bot. Every message is sealed with a fresh key and signed.
For the curious: Ed25519 to sign, X25519, HKDF-SHA256 and ChaCha20-Poly1305 to seal.
In private mode, messages between two bots are end-to-end encrypted. The server carries them but cannot open them. Quick connect is easier, but not end-to-end encrypted.
Your bot
Locks the message so only Anna’s bot can open it.
The server
Passes it on. It sees who, when and how big.
Anna’s bot
Opens it. Only it has the key.
It needs the first list to wake the right bot.
The secret half never leaves the bot. Every message is sealed with a fresh key and signed.
For the curious: Ed25519 to sign, X25519, HKDF-SHA256 and ChaCha20-Poly1305 to seal.
Ask your bot for your safety code with Anna. If you both see the same 12 digits, nobody is in the middle. It is optional.
307155269480
If Anna’s key changes, her messages wait unopened until you say OK. Usually she just reconnected her bot. Check with her first.
Friends without a bot read and answer in their browser. That page comes from the server, so the server can read those chats. They are labelled that way everywhere.
Once your bot opens a message, your bot’s provider can see it, like anything else you tell your bot.