Encrypted Chat

Quick guide

What it does

Private room for text, files, and optional audio/video calls. No accounts. Peers meet by room name; a password makes the room much harder to join by guessing.

Messages

Every chat message (and typing indicator) is encrypted in your browser with AES-GCM before it touches the realtime relay. The relay only sees ciphertext plus minimal room metadata (room id, presence count, message ids/timestamps). Servers do not keep message history.

Calls

Call setup (offers, answers, ICE) is encrypted the same way as chat. Live audio/video uses WebRTC with TURN-only relay so peer IPs stay hidden. Media is protected by WebRTC’s built-in DTLS-SRTP between participants — the TURN server forwards encrypted packets, not clear speech or video.

Files

Files are AES-GCM encrypted in your browser first. Preferred upload is first-party storage (upload.encrypt.click). If that fails, ciphertext is sent only to encrypt.click’s own API, which then relays it server-side to backup hosts — your browser never talks to those third parties directly. The download link and filename travel inside an encrypted chat message.

How it's safe

Plaintext text, call media content, and file bytes are meant to stay client-side or end-to-end encrypted. Relays and upload hosts should only ever handle ciphertext for those payloads.

Watch out

Without a password, the room key is derived from the room name — anyone who can guess the name can decrypt. Relays still see that you are online and when encrypted blobs move. If first-party upload fails, backup hosts receive ciphertext size/timing via our server (not your IP directly). Prefer a strong password for anything sensitive.

Enter a room name, optionally add a password, then choose local participant history or disappearing messages.

Anyone who enters this name meets in the same room. The name is not secret; add a password for stronger privacy.

No password means the room name derives the key. Easier to share, but weaker than a real password.

How it works

1 Enter a room name. Add a password if you want stronger encryption than room-name-only access.
2 Choose local participant history, or make messages disappear after 10 or 5 seconds.
3 Share the room link. Password-protected rooms still need the password shared separately.