Android
The whole messenger, none of the paperwork
Chats, groups, files, calls and push-to-talk — over 2-hop onion routing, with post-quantum encryption and no account to sign up for. Install it from an APK you can verify yourself.
- Requires
- Android 7.0+
- Architectures
- arm64-v8a, x86_64
- Play Store
- No — direct APK
- Google Play Services
- Not used
SHA-256 4b921ade75f590be461b7ac825229e06ab458f34669f71c40cd1e16174e29060
Mara
Mara
Sent the new relay list
Ops
Ilya: epoch code 4F2A-91
Jonas
Private message
@bot
Build 812 published
Nadia
Voice note · 0:14
Chats
Filters, unread counts and a bottom bar for Chats, Calls and push-to-talk — no phone numbers anywhere.
Screens
What it looks like
Faithful recreations of the shipping screens — same layout, same controls, drawn so they stay sharp at any size.
Mara
Mara
Sent the new relay list
Ops
Ilya: epoch code 4F2A-91
Jonas
Private message
@bot
Build 812 published
Nadia
Voice note · 0:14
Chats
Filters, unread counts and a bottom bar for Chats, Calls and push-to-talk — no phone numbers anywhere.
Jonas
online
New entry router is up — fingerprint pinned already.
Routing through it now. Two hops, so neither host sees both of us.
Tap to view
Got it.
📻
Jonas invited you to Etoki (push-to-talk)
A conversation
Delivery ticks over a 2-hop route, a locked “Tap to view” message, and an in-chat push-to-talk invite.
Jonas
last seen 02:02
Sending the next one privately.
Tap to view
Entry hop rotates Friday.
Private messages
View once, view & keep, or off — and the composer masks your own text while you type.
Connection flow · Jonas
How you send
You
Etoki Router B
Entry relay
Online · 200 ms
Etoki Router A
Their router
Online · 211 ms
Jonas
How you receive
Jonas
Etoki Router A
Your router
Online · 211 ms
You
Entry hop: the queue router never sees your IP address.
Connection flow
Every chat shows its own route, hop by hop, with live latency for each relay.
Jonas
Hold to talk
Etoki push-to-talk
Hold to talk live to a paired partner, or lock it and keep going.
Servers & Relays
Check allServer mode
Default
Only Etoki’s built-in servers
Default + custom
Built-in servers plus your own
Router
Etoki Router A
Direct
Etoki Router B
Direct
File relay
Etoki File Relay A
Direct
Etoki File Relay B
Direct
Directory
Etoki Directory A
HTTPS 443
Etoki Directory B
HTTPS 443
Servers & relays
Run on Etoki’s servers, add your own, or use only your own — one choice per category.
My address
One link or QR you can share anywhere. Anyone with it can ask to add you — even while you are offline — and you approve each request.
Public username
Pick a unique @username on a directory. People can find you by name — they still send a request you approve.
Your address & @username
A permanent link or QR, plus an optional directory name people can find you by.
New chat
Share with the other device:
Adding someone
Show a QR, paste a code, or type an @username — every request still needs your approval.
Accounts
Mara
Active
Florin
Tap to switch
Separate identities on one phone. Each profile has its own keys, contacts and — if you set one — its own duress PIN.
Separate identities
Several profiles on one phone, each with its own keys and its own duress PIN.
Settings
Privacy
Last seen & online
Read receipts
Privacy & Security
App lock (biometric / PIN)
Block screenshots
Panic Mode
On — duress PIN wipes this profile
Networking
Proxy (SOCKS5)
Rotating over 3 proxies
Block non-proxied traffic
Calls and Etoki are refused while proxied
DNS-over-HTTPS resolver
Default (Cloudflare 1.1.1.1)
Privacy & security
App lock, screenshot block, panic mode, proxy and DNS rules.
Welcome to Etoki
Private, post-quantum encrypted messaging over disposable queues.
No phone number, no email, no account.
First run
Type a name and you are in — nothing to sign up for, nothing sent.
Highlight
Messages that do not stay
Jonas
last seen 02:02
Sending the next one privately.
Tap to view
Entry hop rotates Friday.
Private messages
View once, view & keep, or off — and the composer masks your own text while you type.
Tap the lock in the composer and the next message goes out private. Your contact sees “Tap to view” — nothing is shown until they choose to look.
- View once — five seconds after the reveal it is deleted on their phone and yours.
- View & keep — stays behind a tap, so nothing sensitive is on screen while you scroll.
- Your own draft masks itself a moment after you stop typing, and copy, save and forward are refused on private messages.
- Set it per message, or turn a whole conversation private from the same lock icon.
Everything in the app
Feature by feature
Written from the shipping build — if it is listed here, it is in the APK.
Messaging
Everything you expect from a modern messenger, with no account and no phone number behind it.
- Replies with a tappable quote, emoji reactions, and forwarding to any chat
- Pin messages to the top of a chat, star them into a saved-messages list
- Multi-select to copy, forward, star, pin, save or delete in one go
- In-chat search, chat folders, favorites, mute, and archive-free tidy lists
- Delete for me or delete for everyone, mirrored on the other device
- Typing indicators, read receipts, last seen and online — each switchable off
Private messages
A per-chat mode, or a one-shot toggle on the composer's lock icon, for the things you do not want sitting in a chat log.
- View once: the bubble shows “Tap to view”, reveals for 5 seconds, then deletes itself on both devices
- View & keep: stays hidden behind a tap, revealed only when you want it, never auto-deleted
- The composer masks your own text a moment after you stop typing, so shoulder-surfing gets nothing
- Copy, save and forward are refused on private messages
- Per-chat disappearing timers, a prevent-copy switch, and a notice to your peer if they screenshot
Media & files
Photos, video, files and voice notes travel over padded file relays that never see the content.
- Images and video with in-app viewers, plus save-to-gallery
- Any file type, chunked and padded to size buckets across relays
- Voice notes recorded and played inside the chat
- Auto-download rules per network: Wi-Fi, mobile data, roaming
Calls & Etoki push-to-talk
Live audio and video, and a walkie-talkie style tab for people you talk to constantly.
- End-to-end encrypted 1:1 voice and video calls over WebRTC
- The Etoki tab: pair a partner from a chat invite, then hold to talk live
- Mute a single Etoki partner or all of them at once
- Calls and Etoki are refused automatically when strict-proxy mode is on — WebRTC cannot be proxied without leaking your IP
Groups
Group encryption on MLS (RFC 9420), carried over the same pairwise channels as your direct chats.
- Create groups, add and remove members, admin-gated membership
- A per-epoch verification code to confirm the group out of band
- No group server: fan-out happens over your existing encrypted connections
Identity & duress
Several separate lives on one phone, and a way out if someone makes you unlock it.
- Multiple accounts on one device, switched instantly from Settings
- App lock with biometrics or a PIN, plus a screenshot and recents-preview block
- Panic mode: a per-profile duress PIN that wipes that profile — and any profile sharing the PIN — the moment it is entered
- Chat history in a SQLCipher database whose key is wrapped by the Android Keystore
Network control
You choose which relays carry your traffic, and how it leaves your phone.
- Manage routers, file relays and the 2-hop entry router from Settings
- A per-chat connection-flow diagram, and “change entry” to re-route a single conversation
- SOCKS5 proxies: pin one, or rotate a pool so each new connection takes the next
- Block non-proxied traffic, and resolve names over DNS-over-HTTPS instead of the OS resolver
- No FCM or APNs: a foreground service keeps queue connections live and restarts at boot
Bot console
Run announcement and alert bots from the phone, against your own bot relay.
- Add a bot with its relay API URL and token, with a certificate-pinning trust prompt
- See subscribers and an updates feed of messages and connections
- Send at normal, high or critical priority — the loud ones pierce mute and are rate-limited
On the device
The small things that make it usable every day.
- Light, dark or system theme, and a language picker
- Notification delivery modes (instant, periodic, off) and a preview toggle
- Self-updating: the manifest is Ed25519-signed with a pinned key and the APK must match its digest
What it never does
- No phone number, email address or account to sign up with.
- No Google Play Services, no Firebase, no APNs — notifications never leave your relays.
- No plaintext at rest: messages, media and keys sit in an encrypted database.
- No analytics, no crash reporting, no advertising identifiers.
Run it on your own relays
The app ships without a home server. Point it at relays you control — the configurator writes the install scripts, and the security page explains exactly what a relay can and cannot see.
