How it works
Three steps, no sign-up. Encryption stays entirely on your devices.
- 1
Pair contacts by QR code
Hold the phones screen to screen – both show a code and scan with the front camera at the same time. Afterwards each device holds the other's keys. Alternatively step by step, or as a text code.
- 2
Write – the envelope is copied or shared
You type as usual. The app encrypts and puts an envelope like “🛡️MSG:…” on the clipboard or opens the share sheet. Paste it into Telegram, WhatsApp, an e-mail, anywhere.
- 3
Receive: Share → AES256CHAT
Your contact taps the envelope, chooses Share and AES256CHAT – the message appears decrypted in the chat. When both are online, the devices can link directly and messages arrive instantly.
The transport channel only ever sees ciphertext. What it cannot see, it cannot store, analyse or hand over.
Security – specific, not “military grade”
We name the algorithms. Everything is readable in the source code.
| Identity | Ed25519 (signatures) + X25519 (key agreement) + ML-KEM-768 (post-quantum KEM), generated on the device |
|---|---|
| Contact handshake | PQXDH pattern: four X25519 agreements + ML-KEM-768, signed, via QR or text |
| Messages | Double Ratchet (X25519, HKDF-SHA-512, AES-256-GCM) – forward secrecy and post-compromise recovery |
| Envelope | 🛡️MSG:<base64url>, no sender or recipient identifier; the receiver trial-decrypts against its contacts |
| Files | As an encrypted .aes256 file; images are downscaled first (EXIF dropped) |
| Direct link | WebRTC data channel without ICE servers (same Wi-Fi); STUN only by toggle |
| Local vault | Argon2id (64 MiB) → key wrapping the data key; every record AES-256-GCM, indexes as HMACs |
| Safety number | 60 digits, identical on both devices – compare to rule out a man in the middle |
What the app does not protect
- Metadata in the transport channel: Telegram knows you sent Bob something at 14:02 – just not what.
- A compromised device: malware or someone reading along sees plaintext – as with any messenger.
- The handshake, if you never compare the safety number and the exchange channel is hostile.
Threat model and crypto details: SECURITY.md in the repository. There has been no external audit yet – and we do not claim one. SECURITY.md
Where AES256CHAT stands
Not a Signal replacement – a different answer to the question of whom you must trust.
| AES256CHAT | Signal / WhatsApp | Telegram (default) | |
|---|---|---|---|
| Server required | no | yes | yes |
| Phone number / account | no | yes | yes |
| End-to-end | always | always / always | secret chats only |
| Post-quantum handshake | yes (ML-KEM-768) | Signal: yes · WhatsApp: no | no |
| Offline delivery / push | no (envelope waits in the channel) | yes | yes |
| Runs over existing apps | yes | no | no |
| Source code | AGPL | Signal: open · WhatsApp: no | client open |
As of September 2026, based on the vendors' public statements.