Spojiti is built so that the interesting question isn't "do you promise not to look?" — it's "can you look at all?" Wherever possible, the answer is engineered to be no.
No phone number, email or name — your identity is an Ed25519 keypair derived from a 12-word phrase generated on your phone. We can't link you to a SIM, a Google account, or another app's shadow profile, because there is nothing to link.
Sessions are established with X3DH — now with a post-quantum leg, below — and evolved with the Double Ratchet — the same cryptographic family trusted by security researchers worldwide — with per-device sessions and forward secrecy. The relay routes ciphertext it cannot read and deletes it on delivery.
Session setup adds an ML-KEM-768 key exchange (FIPS 203) alongside the classical one, so an attacker recording your traffic today to break later has to defeat both. The classical encryption is extended, never replaced.
The part almost nobody else does: our implementation is verified against NIST's own published test vectors on your device, at every launch, before it is allowed near a conversation. If that check ever fails, post-quantum switches itself off and says so, rather than pretending to protect you. Claiming post-quantum is easy. Proving it on the device in your hand is the part that counts.
On your phone, history lives in an SQLCipher-encrypted database and media is stored as sealed blobs — each photo, video and voice note under its own fresh key. A stolen phone without your unlock gives up nothing readable.
Push messages carry zero content — Google's and Apple's push networks deliver only a content-free nudge; your words are fetched over the encrypted channel after your phone wakes. Previews are rendered locally, and you control what the lock screen shows.
The abuse guard runs entirely on your device — a local lexicon in English, Hinglish and Devanagari that blurs abusive content until you choose to see it and nudges senders to think twice. No cloud moderation, no server-side scanning; structurally, there is nothing for a server to scan.
Message franking means that when you report abuse, cryptography lets us verify the reported message is real — without giving us the ability to read anything you didn't report. Accountability and privacy in the same design.
Backups are optional and sealed with a key derived from your recovery phrase before they leave your phone. One opaque snapshot per account, replaced on each backup. We cannot open it, and neither can anyone who compels us.
Spojiti runs on servers we own and operate, multi-homed across Europe and India — the app races every route and takes the first that answers. No hyperscaler sits between your words and their destination, and calls punch through strict networks over TLS on port 443.
If a build ships with a security flaw, the relay refuses it once a fixed build is out — a forced-upgrade gate so no one quietly lingers on vulnerable software.
Every key you own is derived from your recovery phrase, on your device, every time. Nothing on this tree is stored anywhere or uploaded ever — only the public halves are published. That is why the 12 words alone can rebuild your identity on a new phone, and why we could not recover them for you even if you asked.
Two independent secrets are agreed the moment a chat starts — one classical, one post-quantum — and both feed the root key. An attacker has to break both. From there the Double Ratchet gives every single message its own key, thrown away after use.
What the relay necessarily handles: the ciphertext it routes while you're offline (deleted on delivery), the opaque account IDs involved in delivery, your subscription tier, and standard connection data any server sees (an IP address while connected). We keep this to the minimum routing requires.
What we structurally cannot see: your messages, media, and calls (end-to-end encrypted); your name or phone number (never collected); your contact book (never uploaded); your backup contents (sealed with your phrase); what you say in a payment request or which sticker you send (all inside the encrypted envelope).
What we won't pretend: no messenger can protect a conversation from the person you're talking to, or from a compromised phone. Screenshot control raises the cost of leaks; it can't make a screen unphotographable. Where a promise can't be absolute, we say so — here and in the user guide.
Security reports are welcome and taken seriously. Every build ships with on-device diagnostics (Settings → Diagnostics → Export) that contain no message content — export a log and reach us through the store listing's support channel.
Our only revenue is subscriptions. There is no advertising SDK, no analytics broker, and no data-sharing "partner" in the app — the business model is the privacy policy.