Your messages, your keys, your control
CrypTok messages are protected by end-to-end encryption (E2EE). Only you and the person you're talking to can read what you send. Not us. Not anyone with database access. Not anyone tapping the network in between.
Here's how it works in plain terms — and why connecting your wallet matters even though the wallet itself isn't doing the daily encryption.
How encryption actually works on CrypTok
The first time you open CrypTok on any device — a browser, a phone app, a tablet — your client generates a fresh encryption keypair on that device. The private half lives in your browser's local storage and never leaves. The public half is registered with our server so other people can encrypt messages to you.
Each device has its own keypair. If you use CrypTok on your laptop AND your phone, they each have separate keys. When someone sends you a message, their client looks up your full device list and encrypts a copy for each of your devices. Each device decrypts only the copy meant for it.
The math is the same kind that secures Signal, WhatsApp, and iMessage. We never see plaintext. Even if our database were stolen tomorrow, every encrypted message would be useless to the attacker — they'd need each individual device's private key to decrypt anything, and those keys live exclusively in users' local storage on the devices they use.
The catch: lose your devices, lose your messages
That's the trade-off of true E2EE. Because the keys live on your devices, if you lose every device you've ever signed in on — phone dies, laptop wiped, browser data cleared — your encrypted message history is gone. Permanently. No recovery from our side, because we never had the keys in the first place.
Most messaging apps solve this with an encrypted cloud backup that you unlock with a PIN, a 64-digit recovery code, or a hardware key. CrypTok has a much better option built in: your Solana wallet.
Wallet backup: the upgrade
Here's what happens when you enable cloud backup:
- You go to Settings → Encryption
- You tap Enable cloud backup
- Your wallet (Phantom, Solflare, Backpack — whatever you have connected) prompts you to sign one free message labeled "CrypTok Recovery v1"
- Your client takes the signature, runs it through a one-way function to derive a recovery key, then uses that key to encrypt a backup of all your device keys
- The encrypted backup blob is uploaded to our server. We can't decrypt it — we never see the recovery key or the wallet signature
That's it. Done. From now on, any device you ever sign into CrypTok with the same wallet can recover your full message history — because signing the same message with the same wallet produces the same signature, which derives the same recovery key, which decrypts the same backup, which contains your device keys, which decrypt your messages.
Wallet signatures are deterministic. Same wallet + same message = same signature, every time, on every device, forever. That's the magic.
What the wallet does NOT do
This is the part most people get confused about, so it's worth being explicit:
- ❌ Your wallet is not used for daily encryption. You don't have to sign with your wallet every time you send a message. The wallet is touched once when you enable backup, and once on each new device you want to restore to.
- ❌ Disconnecting your wallet from CrypTok does not lock your messages. Your daily encryption uses device-local keys. The wallet is purely a recovery escrow.
- ❌ Your wallet's private keys never leave your wallet app. CrypTok only ever sees the deterministic signature, which can't be reversed back into your wallet keys.
- ❌ The recovery message is a signature, not a transaction. No gas, no on-chain footprint, nothing visible on-chain.
Think of the wallet like a safe deposit box for your encryption keys. It's there if you need it, but you don't have to open it every time you want to use your keys.
Multiple devices, simultaneously
Want to use CrypTok on your laptop AND your phone at the same time? Connect the same wallet on both, enable backup once, and from then on every message gets encrypted to both devices. Each device decrypts its own copy. Send a message from your laptop, see it on your phone within seconds, all encrypted, all reading the same conversation.
Lose your phone? Buy a new one, install CrypTok, sign in, connect your wallet, sign the recovery message — your full history reappears in seconds. The new phone gets added to your device list automatically; senders start encrypting copies for it immediately.
Switching wallets (compromise recovery)
If you ever need to rotate to a new wallet — maybe you suspect your seed phrase has been exposed — you can do it from any active CrypTok device without losing message history:
- Settings → Encryption → tap Re-sync backup with your new wallet connected
- Sign the recovery message with the new wallet
- Your encrypted backup gets re-wrapped under the new wallet's recovery key, replacing the old encrypted blob on the server
- The old wallet's recovery key is now useless — it can't decrypt the new blob
- Your device keys, your message history, and every active device keep working unchanged
This is the killer feature versus traditional E2EE apps: changing your "master recovery method" doesn't cost you your messages.
Revoking a stolen device
If a specific device is lost or stolen — but your wallet is still safe — you can revoke just that device:
- Settings → Encryption → find the device in the list → tap the × to revoke
- That device is immediately removed from your active device list
- Future messages from anyone won't be encrypted to it anymore
- Your other devices keep working perfectly
The stolen device can still read messages it had already received locally — that's the unavoidable nature of E2EE — but it stops receiving new ones immediately.
What we can and can't see on the server
| What we CAN see | What we CAN'T see |
| Who is talking to whom (sender / recipient user IDs) | The plaintext content of any encrypted message |
| Timestamps and message size | The body of replies, encrypted images, voice notes |
| Each device's public encryption key | Any device's private key — we never have them |
| That a recovery backup exists for a user | What's inside the encrypted backup blob |
| The wallet address linked to a backup | The wallet signature or any value derived from it |
Quick reference
- 🟢 Encrypted — your client has working device keys and messages decrypt cleanly. Default state for any active session.
- 🛡️ Backup enabled — your encryption keys are wrapped under your wallet signature and stored encrypted on our server. You can recover on any new device by signing with the same wallet.
- ⚠️ Backup off — your messages live only on devices you've already signed in on. If you lose them, you lose the messages. Connect your wallet from Settings → Encryption to enable backup.
The TL;DR
- Encryption is always on. Every device you use generates its own keys automatically.
- Connect your wallet once and enable cloud backup, so your keys are recoverable on any device with the same wallet.
- Use multiple devices — laptop + phone + tablet, all encrypted, all in sync, no friction.
- Rotate wallets safely if you ever need to — message history is preserved.
- We literally cannot read your encrypted messages. Math wins.
If you care about your conversations existing tomorrow, take 30 seconds right now: open Settings → Encryption, tap Enable cloud backup, sign one free message with your wallet. That's the difference between "permanent message archive" and "I lost everything when my phone died".
Stay private. Stay encrypted. Welcome to CrypTok.