Etoki

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

M

Mara

AllUnreadFavoritesGroups
M

Mara

Sent the new relay list

9:322
O

Ops

Ilya: epoch code 4F2A-91

9:12
J

Jonas

Private message

8:571
B

@bot

Build 812 published

Yesterday
N

Nadia

Voice note · 0:14

Yesterday
New chat
Chats
Calls
Etoki

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.

M

Mara

AllUnreadFavoritesGroups
M

Mara

Sent the new relay list

9:322
O

Ops

Ilya: epoch code 4F2A-91

9:12
J

Jonas

Private message

8:571
B

@bot

Build 812 published

Yesterday
N

Nadia

Voice note · 0:14

Yesterday
New chat
Chats
Calls
Etoki

Chats

Filters, unread counts and a bottom bar for Chats, Calls and push-to-talk — no phone numbers anywhere.

J

Jonas

online

Today

New entry router is up — fingerprint pinned already.

9:28

Routing through it now. Two hops, so neither host sees both of us.

9:29

Tap to view

9:31

Got it.

9:33

📻

Jonas invited you to Etoki (push-to-talk)

Accept & pair
Message

A conversation

Delivery ticks over a 2-hop route, a locked “Tap to view” message, and an in-chat push-to-talk invite.

J

Jonas

last seen 02:02

Today

Sending the next one privately.

8:55

Tap to view

8:57

Entry hop rotates Friday.

disappears in 5s8:58
Off
View once
View & keep
••••••••••••

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

HOLD
Lock — keep transmitting

Etoki push-to-talk

Hold to talk live to a paired partner, or lock it and keep going.

Servers & Relays

Check all

Server 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.

Entry router
Default (Etoki Entry B)
Revoke address

Public username

Pick a unique @username on a directory. People can find you by name — they still send a request you approve.

Etoki Directory A
Username
mara
Cancel
Register

Your address & @username

A permanent link or QR, plus an optional directory name people can find you by.

New chat

InviteAdd by code
Contact name
Jonas
Create invitation

Share with the other device:

Copy
Share

Adding someone

Show a QR, paste a code, or type an @username — every request still needs your approval.

Accounts

M

Mara

Active

F

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.

e

Welcome to Etoki

Private, post-quantum encrypted messaging over disposable queues.

Your name
Mara
Get started

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

J

Jonas

last seen 02:02

Today

Sending the next one privately.

8:55

Tap to view

8:57

Entry hop rotates Friday.

disappears in 5s8:58
Off
View once
View & keep
••••••••••••

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.