Public beta · Tox network

Private messaging without a central server

Khandaq Messenger is an open-source client for the Tox protocol. Messages are end-to-end encrypted and routed peer-to-peer. No phone number, no account database, no message store on our servers.

Android · iOS · Windows · macOS · Linux Open source E2E encrypted

Why Khandaq

A branded, maintained fork of proven Tox clients — on the public Tox DHT, with a privacy-preserving push wake relay for mobile.

No phone number

Sign up with a Tox ID only. Share your ID as text or QR code to add contacts.

End-to-end encryption

Message content is encrypted by the Tox protocol. Khandaq servers never see your chats.

Truly decentralized

No central message server. Clients connect to the public Tox DHT, made up of nodes run by volunteers — we operate none of them.

Transparent & auditable

Full source code on GitHub. Public endpoints, checksums, and security policy are documented in the repo.

Download

Pick your platform. Verify downloads with SHA-256 checksums before installing.

Verify integrity: SHA256SUMS.txt on GitHub or mirror on khandaq.org.
shasum -a 256 -c SHA256SUMS.txt

Android

Install from Google Play. Android 8+. Package com.khandaq.messenger.

Google Play v0.2.44 · GPL-3.0

iOS

Install via Apple TestFlight. Requires iOS 16+. Not distributed as a public IPA.

Open TestFlight 1.4.33 · TestFlight build 142989 · MPL-2.0

Windows

x64 portable build for Windows 10 and 11. Unzip and run — no installer needed.

Download .zip v0.2.12 release · desktop app 1.17.6 · security-patched libs · GPL-3.0

macOS

khandaq.app in a zip archive. Apple Silicon and Intel builds in one bundle.

Download .zip v0.2.12 release · desktop app 1.17.6 · GPL-3.0

Linux

Debian/Ubuntu: .deb package. Other distros: portable tarball with bundled libraries.

Download .deb Portable .tar.gz v0.2.12 release · desktop app 1.17.6 · amd64 · GPL-3.0

Primary hosting: GitHub Releases. Direct mirror: khandaq.org/downloads/.

Get started in three steps

  1. Install the client for your platform and create a profile. Write down your password — it cannot be recovered.
  2. Share your Tox ID with someone you trust (copy from profile or show QR).
  3. Add a contact by ID or QR, then send a test message.

Recent beta improvements

Highlights from recent builds — see the full changelog →

  • A relayed message cannot borrow an absent person's name. When you join a group and other members send you the history you missed, a message is now shown as relayed content of unknown authorship unless its author can actually be vouched for. Text and files, both platforms.
  • Each contact gets its own key to wake your phone, and you can revoke one. Knowing your notification address used to be enough. Wake requests are now signed by the device that sends them, and your token no longer travels in the web address where servers write it down.
  • Fewer permissions, and a higher floor. Android drops three permissions the app never used and bounds two more to the versions that need them. Android 8 is now the minimum — below that the app had depended on behaviour the system did not provide.
  • Desktop downloads are signed. Every download has a detached signature beside it, and the key that made it lives in the project's git repository rather than on this web server — so the file and the means of checking it arrive by different routes.
  • Earlier builds. Cross-platform 1:1 video calls between Android and iPhone; edit sent messages; reactions, delete-for-everyone and swipe-to-reply on photos, videos, voice and files; voice notes fixed on older iPhones (TestFlight build 142980).

Installation notes

Android — Google Play
  1. Open Khandaq on Google Play.
  2. Tap Install. Updates arrive automatically through Google Play.
  3. Coming from an old sideloaded/debug build? Export your Tox profile → uninstall the old app → install from Google Play → import the profile (the signing key is different).
Verify a download before you run it

Every desktop file is signed with a key published in the source repository — a different place from this website. A checksum alone cannot help you here: whoever could replace the download could replace the checksum beside it. A signature made with a key we do not serve from this server can.

  1. Get the signing key and the signer list from the repository (not from this page):
    curl -O https://raw.githubusercontent.com/ummalife/khandaq/master/web/downloads/allowed_signers
  2. Download the file and its .sig, then check them:
    ssh-keygen -Y verify -f allowed_signers -I releases@khandaq.org -n khandaq-release -s khandaq-messenger_amd64.deb.sig < khandaq-messenger_amd64.deb
  3. Good "khandaq-release" signature means the file is the one we built. Anything else means do not run it, and please tell us.

ssh-keygen is already on macOS and Linux, and comes with Git for Windows. SHA256SUMS.txt is still published for convenience, but it is an integrity check, not a trust anchor.

Windows
  1. Verify the signature as above, then unzip the archive and run Khandaq.exe.
  2. Windows will warn that the publisher is unknown: the desktop build is not yet Authenticode-signed, and we are not going to pretend that is fine. Verifying the signature above is what tells you the file is genuine; the Windows warning is telling you something true, which is that it cannot check that for you.
  3. We are not asking you to add antivirus exceptions. If your antivirus objects to a file whose signature verifies, please report it to us — that is a false positive worth chasing, not something to switch off.
macOS
  1. Verify the signature as above, then unzip and move khandaq.app to Applications.
  2. The build is not yet notarized by Apple, so Gatekeeper will not open it on a first double-click. Right-click the app → Open → confirm: that is the documented way to run an app Gatekeeper cannot vouch for, and it keeps the rest of Gatekeeper working.
  3. Previous versions of this page suggested xattr -cr. It is no longer recommended: it strips the quarantine flag from everything in the bundle and turns off exactly the check you would want on the day a download is not genuine.
Debian / Ubuntu — .deb package
  1. Download khandaq-messenger_amd64.deb and verify SHA-256.
  2. sudo apt install ./khandaq-messenger_amd64.deb
  3. Launch Khandaq from the app menu or run khandaq.
Linux — portable bundle (Arch, Fedora, …)
  1. tar -xzf khandaq-linux-x86_64-portable.tar.gz
  2. Keep khandaq, khandaq.bin, and lib/ together — see INSTALL.txt in the archive.
  3. Recommended: install under ~/.local/share/khandaq/ and symlink ~/.local/bin/khandaq.
iOS — TestFlight
  1. Install TestFlight from the App Store.
  2. Open the public TestFlight link on your iPhone or iPad.
  3. Accept the invite and install Khandaq. Updates arrive through TestFlight.

Open source & transparency

Khandaq is a fork and rebrand of established Tox clients. We keep wire compatibility with the public Tox network.

Public infrastructure

  • Bootstrap: the public Tox DHT (nodes.tox.chat) — no self-hosted bootstrap nodes
  • push.khandaq.org — wake-only push relay (no message body)
  • Desktop base: qTox · Android: TRIfA · iOS: Antidote (Zoxcore fork)

FAQ

Is Khandaq the same as Matrix / Element?

No. Khandaq uses the Tox protocol (peer-to-peer, no homeserver). This website now hosts the Khandaq Messenger download page.

Do you store my messages?

No. Message content stays on your devices. The only Khandaq-operated service is the push wake relay — documented in the repository and in the privacy policy. Bootstrap discovery runs on the public Tox DHT, which we do not operate.

How do I report a bug?

Open an issue on GitHub Issues or use the security advisory flow for vulnerabilities (private report).

Where do I download Khandaq?

Android: the official Google Play listing (install and auto-update from there). iPhone/iPad: via TestFlight while iOS is in beta. Windows, macOS, Linux: from the Download section above.

Do I need a phone number or email to sign up?

No. There is no account and no sign-up. You create a local profile and get a Tox ID — share it with people you trust to connect. No phone number, email or any personal detail is required or collected.

Why don't I get notifications when the app is closed?

Because Khandaq is peer-to-peer, a closed app has no live connection. A lightweight push wake service nudges your device to reconnect and fetch the message — it never carries the message content, only a wake signal. Make sure notifications are allowed for Khandaq in system settings and that the app isn't force-stopped or battery-restricted. On Android, Google Play builds get these wakes automatically.

I sent a message but it wasn't delivered — why?

There is no central server holding your messages. A message is delivered when your contact's device is reachable. If they're offline it is queued and sent automatically once either of you reconnects — so a message can take a while if the other person hasn't opened the app. Keeping the app open (or allowing background/push) makes delivery near-instant.

I forgot my profile password — can you reset it?

No — and no one can. Your profile's encryption keys are derived from that password, and there is no server that stores it, so there is no reset. If it's lost you'll need to create a new profile (and a new Tox ID). Write your password down somewhere safe when you create the profile.

How do I move my profile to a new phone?

Export your Tox profile from the old device (Profile → export) and import it on the new one, so you keep the same Tox ID and contacts. A profile is meant for one active device at a time — running the same one on two devices simultaneously isn't supported by the Tox protocol.

Do voice and video calls work between Android and iPhone?

Yes. 1:1 audio and video calls work across Android and iOS — both sides see each other's camera, upright and full-screen. Calls are peer-to-peer and end-to-end encrypted like messages.

Is it really end-to-end encrypted?

Yes. Every message, file and call is end-to-end encrypted by the Tox protocol (NaCl cryptography), directly between devices. No one in the middle — including us — can read your messages or see your contacts.