Secure messenger · Windows · Android
Choose how hidden you are
Your contact can see your IP.
Or not.
Chat and call your people from a Windows desktop and an Android phone. Five stops, from OPEN to GHOST: no Tor, or Tor all the way to the relay’s own onion. Encryption does not change between them; only the route does.
X25519, ML-KEM-768, ED25519, HKDF-SHA256, AES-256-GCM, OPUS, TOR, 60-digit safety number, No password, No phone number
[01] Five stops
Five stops
You choose how hidden you are. Encryption does not change between levels; only the route does.
STOP 03/05 Default
HIDDEN
- Relays
- 3+
- Who sees your IP
- Only the Tor entry guard
- Route
- Tor, onion path to the relay.
Tor with alternating voice links. The default.
Route · HIDDENSchematic
- —Moving to a less hidden level always asks first. During a call at DARK or above, the level cannot drop below DARK.
- —At every level, delivered and read ticks, typing and online status are shared with the people you chat with.
- —Normal mode shows two choices: OPEN and DARK. Turn on Advanced to see all five.
[02] Sign-in
No password
No password. No phone number. This device’s own key signs you in.
When you pick a handle, the app creates a key pair on your device and the BLACK relay remembers only the public half. Each sign-in is a signature from that key. Nothing is tied to your hardware.
Ed25519 device key · challenge-response
Your device is the account. Lose every device of a handle and the handle cannot be recovered: link a second device to keep a spare.
[03] Encryption
End-to-end, one to one
One-to-one chats run a session between the two devices. The relay carries sealed messages it cannot read.
- 01 Ed25519 Each device key signs the session offer.
- 02 X25519 + ML-KEM-768 A hybrid key agreement: an elliptic-curve secret and an ML-KEM secret, combined.
- 03 HKDF-SHA256 Derives the chain keys from both secrets.
- 04 Hash ratchet One HMAC-SHA256 step per message: a fresh key each time.
- 05 AES-256-GCM Seals every message body.
- [!]The ratchet is a hash chain, not a Double Ratchet: there is no DH ratchet in the session, so forward secrecy is limited.
- [!]End-to-end covers one-to-one chats. Note to Self is not end-to-end.
- [!]The lock is shown only when it is true. A chat without a confirmed session says so instead.
Explainer · the key stack
[04] Safety number
60 digits
The safety number is 60 digits from SHA-512 repeated 5200 times.
Matching the safety number means you both see the same identity keys for this chat. It does not prove the devices are clean.
Safety number
Not verified · compare
SHA-512 × 5200 · waiting · demo keys
Computed in this browser with the app’s algorithm, from random demo keys. Not a real chat.
Compare them in person or on a call, or scan the QR code on their screen. Keys are trusted on first use; if a contact’s key changes, the chat holds until you accept it.
[05] The route
The route, live
Drawn from Tor’s own circuits.
The thin bar at the top of the app shows the route that is really in use: OPEN when you connect directly, or the onion circuit with its nodes when you go through Tor. It names the relay as BLACK relay or by its onion name, never by a network address.
NEW IDENTITY asks Tor for a fresh circuit.


[06] Voice calls
Live voice call
Desktop to phone, over Tor.
Compare the short code · same on both screens
Voice frames · 20 ms eachIllustration
- Codec
- Opus voice in 20 ms frames.
- Keys
- Fresh keys for every call, every frame sealed with AES-256-GCM.
- Code
- A short code on both screens. Compare it.
- DARK
- Every voice frame travels twice, over two Tor circuits.
[!]Calls are best effort. Over Tor they depend on the circuit; OPEN gives the lowest delay and shows your IP to the relay.
[07] Tor mode
Tor mode
Through the relay’s own onion.
In Tor mode every app socket is 127.0.0.1.
This is the app, not the whole machine.
Tor hides your IP from the relay and the contact. It does not encrypt the message body.
- 01Tor ships inside the app and runs as its own process.
- 02The relay publishes its own onion service.
- 03At DARK, if Tor is down, nothing is sent.

Layers
Schematic · not a live capture
[08] The relay
What the relay stores
The relay stores a one-to-one body it cannot read, and it still stores the sender and the recipient.
Sender and recipient ids are stored in the clear.
One stored messageIllustration
- From
- you in the clear
- To
- them in the clear
- Body
- sealed, the relay cannot read it sealed
- Size
- 1 312 B in the clear
- Time
- 21:09 in the clear
Stores
- —Your handle and the public keys of your devices.
- —Which chats and groups you are in, and who is in them.
- —Messages until every recipient device confirmed them, with their times and sizes.
- —Delivered and read times, so the ticks can catch up when you come back online.
Does not get
- —No phone number, email, contacts upload or hardware id.
- —At SWIFT and above, not your IP address: it sees a Tor connection.
OPEN: no Tor. Your contact and the relay can see your IP.
[09] Two devices
One handle, two screens
One handle on your desktop and your phone. Messages reach both.
The code is a one-time token: it works once and expires after two minutes. The phone makes its own device key and signs the token with it. The code never holds a network address or anything about your hardware.

Link a phone2:00
One-time token · expires in two minutes
- 01 DesktopPROFILE → Link a phone. A QR code appears with a countdown.
- 02 PhoneLink to my desktop instead → Scan QR. No camera? Paste the link text.
- 03 DoneThe phone says Linked as <your handle> and signs in.

Real capture · Pixel · test account

Android
- Screenshots of the app are blocked by default; Settings can allow them.
- Copied text is marked sensitive.
- No push service: a closed app does not wake up. Open it and it syncs.
Several local profiles on one desktop, each its own handle with its own key.
[10] Three designs
Three designs
This does not say Telegram is insecure or Signal is broken. Their specs, in their words; our limits, in ours.
Signal
- Hybrid X25519 and ML-KEM handshake, specified as PQXDH. Source
- Signal specifies a Double Ratchet after the handshake. BLACK CHAT does not implement that ratchet. Source
- Signal describes an outer envelope that hides the sender from the service. BLACK CHAT stores sender and recipient ids in the clear. Source
BLACK CHAT
- End-to-end, one to one. Note to Self is not.
- A hash ratchet, one step per message. Not a Double Ratchet.
- Five stops of routing, from no Tor to Tor through a bridge.
Sources opened 2026-09-27 · no logos copied
[11] Known limits
Known limits
What BLACK CHAT does not do, said plainly.
[12] The film
The film
75 seconds. Real screen recordings of the desktop app and a Pixel phone.
Explainers · each one idea, rendered from the code
[13]Invite only
Invite only
BLACK CHAT is shared by invitation. Ask the person who invited you for the code, then get the two files: one for Windows, one for Android.
No store, no account, no phone number.





