Skip to content

How it works

Three steps, no sign-up. Encryption stays entirely on your devices.

  1. 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. 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. 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.

IdentityEd25519 (signatures) + X25519 (key agreement) + ML-KEM-768 (post-quantum KEM), generated on the device
Contact handshakePQXDH pattern: four X25519 agreements + ML-KEM-768, signed, via QR or text
MessagesDouble 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
FilesAs an encrypted .aes256 file; images are downscaled first (EXIF dropped)
Direct linkWebRTC data channel without ICE servers (same Wi-Fi); STUN only by toggle
Local vaultArgon2id (64 MiB) → key wrapping the data key; every record AES-256-GCM, indexes as HMACs
Safety number60 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.

AES256CHATSignal / WhatsAppTelegram (default)
Server requirednoyesyes
Phone number / accountnoyesyes
End-to-endalwaysalways / alwayssecret chats only
Post-quantum handshakeyes (ML-KEM-768)Signal: yes · WhatsApp: nono
Offline delivery / pushno (envelope waits in the channel)yesyes
Runs over existing appsyesnono
Source codeAGPLSignal: open · WhatsApp: noclient open

As of September 2026, based on the vendors' public statements.