LOCAL NETWORK · HTTP PAGE
This page has weaker security than HTTPS.
HTTP does not authenticate or protect this page's code. Someone who tampers with it can steal the invitation password, read plaintext messages, and copy encryption keys. Strong end-to-end encryption does not prevent a modified page from doing this.
End-to-end protection: XChaCha20-Poly1305, ephemeral X25519, signed Ed25519 handshakes, Argon2id, and HKDF-SHA256.
Use only a trusted local network and compare the safety fingerprint through a trusted conversation. Fingerprint comparison cannot detect every modified page. This risk cannot honestly be assigned a percentage; use the HTTPS internet chat for stronger page delivery security.
Open the HTTPS internet chat ↗PRIVATE CHAT · NO ACCOUNT
Chat with a friend.
Create a chat, or open an invitation. That's it.
Messages are end-to-end encrypted. No chat history is automatically saved.
STEP 1 OF 2
Save your invitation password.
Your friend needs this password to join. Save it now — it will not be shown again after you create the chat.
Open your friend's invitation.
Paste the link and enter the password your friend sent separately.
I have a ZIP file or a chat code
Join with a chat code.
Enter the full code and shared password from your friend.
After joining, use “Check your friend” to compare the safety code.
STEP 2 OF 2
Send this link to your friend.
Send the password separately. Keep this chat open.
Check your friend
Compare these emojis and the full safety code with your friend through a trusted conversation. They must match on both devices.
Text stays in this session. Closing the page ends the chat; use a new invitation next time.
A LAN invitation needs the exact local HTTP page on the same Wi-Fi. This HTTPS page cannot fetch the local invitation or connect to its WS relay. Open the compact LAN link directly in your browser, read the HTTP security warning, and then enter the password. Ask your friend for the compact LAN link if you only have a ZIP.
Open this exact local HTTP page ↗ Windows app ↓Connection settings
Internet — ready to use
DeXCHAT connects to chat.duxalife.com automatically.
wss://chat.duxalife.comSame Wi-Fi or your own server
In the Windows app, choose Create chat → In the same Wi-Fi. For your own server, open Settings.
About DeXCHAT and its protection
Private conversations. Simple controls.
DeXCHAT supports private two-person chats and groups of up to 8 people. Group creators manage membership and must stay online. New participants receive no previous messages. Removing a participant refreshes the group keys and invalidates the old invitation; create a fresh invitation for new members. Create a chat and share an encrypted invitation, or join a friend with a link, ZIP, or full chat code. Invitations from earlier releases are unsupported; update both clients and create a new chat with a fresh invitation. Windows and browser clients support text, images up to 10 MB, and files up to 25 MB. Voice messages use interoperable PCM WAV; microphone recording is available in the Windows app and an HTTPS browser. A local HTTP browser can receive voice messages, but browsers normally refuse microphone recording there.
Both chat modes use wss://chat.duxalife.com automatically. In the Windows app, choose “In the same Wi-Fi” to start a local relay inside the app. A phone on the same network can open the compact LAN link directly to join; Windows Firewall permission may be needed. The link serves an HTTP page with weaker page security and requires an explicit acknowledgement before entering a password. Local WS invitations cannot connect from this HTTPS website.
What protects the chat?
DeXCHAT uses one current protocol with two-person and group modes. In two-person mode, XChaCha20-Poly1305 encrypts and authenticates message payloads; ephemeral X25519 and signed Ed25519 handshakes establish the session. Argon2id protects invitation and profile passwords; HKDF-SHA256 derives session keys. Message chains advance, periodic key refresh exchanges fresh X25519 material, and replay checks reject reused packets. Group mode uses an owner-signed membership roster, pairwise X25519 key envelopes, and per-sender authenticated encryption and Ed25519 signatures. Membership changes create a new symmetric group-key epoch. Removing a person also replaces the admission secret and revokes old invitations. This is not Signal or MLS and does not claim full post-compromise security. Internet connections use WSS/TLS. The relay forwards encrypted packets without their decryption keys or an offline queue.
Invitations pin the creator's identity. Compare the six safety emojis and full fingerprint with your friend through a trusted conversation, then confirm this session. Display names do not prove identity. Both participants must stay online. Closing a session requires a new chat and invitation; this is not multi-device account synchronization.
Files, voice, and real privacy limits.
Senders choose whether the normal Download button is available, whether an attachment may be opened or listened to once, and whether a timer removes it. Photos open in a full-screen viewer. Before sending, choose the default JPEG compression (quality 88%, longest edge up to 2560 pixels) or the original and compare sizes. Conversion stays in memory and accepts decoded images up to 36 megapixels. Original bytes may include camera metadata; unsupported images or originals above 10 MB are sent as files up to 25 MB. Connection, membership, key changes and verification appear in the conversation. Compare keys explicitly; refreshing keys does not verify identity. One-time content is removed from this client's temporary buffers and Blob URLs after opening/closing or playback; the sender receives an encrypted consumption receipt. A hidden Download button, screen-capture protection in supported Windows environments, and cleanup are best-effort client controls. A browser cannot reliably detect or block screenshots, recording, developer tools, another camera, or a recipient who modifies their client. Do not share content on the assumption that it cannot be copied. Arbitrary files are never executed or embedded in the browser; a restricted file with no safe preview shows metadata only.
Your data stays under your control.
Messages are not automatically saved. Browser keys live in a disposable worker; there is no app storage in localStorage or IndexedDB. A compact LAN link downloads only an encrypted invitation ZIP from the same local server; passwords, plaintext, and keys are not sent to the HTTP server. The HTTP acknowledgement and downloaded invitation stay in memory. Desktop profiles and exported files are saved only when you choose a folder. “Erase everything” clears app-managed data in selected export folders and can remove the compiled EXE and its bundled installer/checksum. It preserves unrelated files. Reselect older export folders to include them.
Deletion is not guaranteed forensic erasure. Windows may page memory, the packaged app extracts native libraries to a temporary folder, and backups or copies elsewhere remain outside its cleanup. A compromised device or website frontend can expose plaintext and keys; network participants can observe connection metadata. HTTP allows page tampering that can expose the invitation password, plaintext, and encryption keys despite strong end-to-end algorithms. This risk cannot credibly be expressed as a percentage, and fingerprint comparison alone cannot prove an HTTP page is authentic.
What's in the Windows download?
DeXCHAT.exe, the official Microsoft Visual C++ x64 Runtime installer, checksums, and a short start guide. Extract the ZIP and open DeXCHAT.exe; Python is not needed. Install the included vc_redist.x64.exe if a runtime is missing. Version 0.8.2, Windows 10 / 11 x64, 42.3 MB.
This release is unsigned. The custom protocol uses PyNaCl/libsodium primitives and has not received an independent cryptographic audit. Nuitka compilation and selected constant obfuscation raise inspection effort; they do not make the client impossible to reverse engineer.
ZIP checksum · Microsoft runtime documentation
5f2d6e63742453616f932621da975287e394dee66f2b6b2467150f65f5b2dd3f