Security & encryption
This page is maintained by Crypta to explain how we protect your conversations.
End-to-end encryption by default
Messages are end-to-end encrypted using well-established cryptographic primitives implemented through libsodium. Encryption keys are generated and stored on users' devices and are not transmitted to our servers. Our servers store encrypted message data and cannot decrypt message contents.
Device-generated keys
Each browser creates its own X25519 keypair on first sign-in. Private keys live in IndexedDB and never leave the device.
Zero-knowledge relay
The server stores ciphertext envelopes, membership lists, and timestamps. It has no mechanism to decrypt message contents.
No plaintext on the wire
Every message is encrypted with XSalsa20-Poly1305 via libsodium's crypto_box before it is sent to the server.
Public, audited primitives
We do not invent ciphers. Crypta relies on libsodium for curve25519, XSalsa20-Poly1305, Ed25519, and BLAKE2b.
What the server can and cannot see
Visible to the server
- · Usernames and conversation membership
- · Public keys used for encryption
- · Message timestamps and encrypted envelope sizes
Not visible to the server
- · Message plaintext or attachment contents
- · Private keys or decryption passwords
- · Safety codes verified out-of-band
Technical whitepaper
For the full threat model, primitive list, key lifecycle, and roadmap, read the security whitepaper. Nothing on this page is an independent audit or certification.