End-to-end encrypted voice calls and messages, no accounts, no servers that can listen.
End-to-end encrypted calling

A voice line with no one else on it.

Fronic places calls that only the two people on them can hear — sealed on your device, opened on theirs, over a mutually authenticated, post-quantum handshake. No accounts. No call history. No server, ours included, that can listen in.

Android 8.0+  ·  coming soon on Google Play

The idea

One call. Two people. No one in the middle.

Every part of Fronic is built so that a conversation stays between its two participants — from the keys that open it to the servers that connect it.

Sealed

Voice is encrypted on your phone and decrypted only on the other end. The handshake is mutually authenticated, so a call can't be silently redirected to an impostor or read in transit.

Silent

No call log, no contact upload, no analytics. The signaling server holds a number, an optional alias and where to ring — a phone book, not a record of who called whom.

Yours

No Google account and no FCM. Wake-ups run over UnifiedPush, so Fronic works on de-Googled Android, and the whole signaling server is self-hostable.

End-to-end encryption

Keys are generated and held on the two devices only. Fronic's servers never see a key that could open a call.

Post-quantum by default

Every handshake pairs a classical algorithm with a post-quantum one. A call recorded today stays sealed unless both are broken.

No accounts, no logs

Your phone number is the only identifier. Call metadata lives in memory for the minutes a call takes to connect, then it's gone.

No Google, no FCM

Incoming calls wake the app through UnifiedPush. Runs on GrapheneOS and other de-Googled Android builds.

Direct peer-to-peer audio

Media goes phone to phone where the network allows it. When NAT blocks that, an encrypted relay forwards the same sealed frames.

Self-hostable

The signaling server is a single service you can run yourself. Point the app at your own and Fronic never touches infrastructure you don't control.

The cryptography, in full

Nothing here is secret. It's the build, stated plainly.

Fronic's security rests on public, well-reviewed primitives — combined so that breaking any single one isn't enough.

Call protocol
FSCP-v1 — a Noise XX-derived mutual handshake. Both phones authenticate each other directly; the server sets the call up but never holds a key that can open it.
Key agreement
X25519 + ML-KEM-768, mixed through HKDF-SHA256. Classical and post-quantum key exchange combined — recorded traffic stays sealed unless an attacker breaks both.
Identity signatures
Ed25519 + ML-DSA-65. Each side signs the whole handshake transcript twice; altering any earlier byte invalidates both signatures.
Voice encryption
ChaCha20-Poly1305, per audio frame. A frame tampered with in flight is dropped, not played.
Signaling transport
TLS 1.3, pinned certificate. The app trusts exactly one certificate, built into it — a tampered device or network trust store can't substitute another.
Media path
Direct UDP, encrypted relay fallback. The relay forwards sealed frames it cannot read.
What's collected

Only what routing a call actually requires.

The signaling server's registration table is a routing table, not a ledger: a phone number, an optional alias, and a push address to ring — kept only while that number stays registered. Who called whom is held in memory for the few minutes a call takes to connect, never written to disk, and gone once it connects or times out. Fronic keeps no call history in the cloud, uploads no contacts, and runs no analytics.

Questions

Frequently asked questions.

What is Fronic?

Fronic is an end-to-end encrypted calling and messaging app for Android. It sends voice calls, text messages, photos, videos, and voice messages, all sealed on your device and opened only on the recipient's.

Do I need to create an account?

No. There's no separate account, username, or password. Your phone number is the only identifier Fronic uses, and only for as long as it stays registered.

Can Fronic read my calls or messages?

No. Every call and every message is end-to-end encrypted on your device before it reaches Fronic's signaling server, which only routes traffic and never holds a key that could decrypt any of it.

Does Fronic work without Google Play Services?

Yes. Fronic uses UnifiedPush instead of Firebase Cloud Messaging for push delivery, so it runs on GrapheneOS and other de-Googled Android builds.

Can I self-host the signaling server?

Yes. The signaling server is a single service you can run yourself; point the app at your own instance and Fronic never touches infrastructure you don't control.

Is Fronic just for calls, or does it do messaging too?

Both. Alongside calls, Fronic sends end-to-end encrypted text messages, photos, videos, and voice messages.

What is post-quantum encryption, and why does Fronic use it?

Every handshake pairs a classical algorithm (X25519, Ed25519) with a post-quantum one (ML-KEM-768, ML-DSA-65). A call or message recorded today stays sealed unless an attacker breaks both — including a future quantum computer breaking only the classical half.

Is Fronic free?

Yes, the Fronic app is free. The signaling server is the only part of Fronic that can be commercially licensed or sold — for an offer, send a request to contact@fronic.net.

Get Fronic

Coming soon on Google Play.

Fronic is launching on the Google Play Store. That will be the way to install it — there's no public download or sideload channel right now. Check back here, or email contact@fronic.net to be told when it's live.

Android 8.0+ · same signing identity, CN=fronic.net