Veil
by VoidlyCalls and messages no one can intercept.
End-to-end encrypted messaging built on Voidly Relay
Post-quantum encryption, voice & video calls, disappearing messages, reactions, voice notes, and encrypted group channels. Built on Voidly Relay — your private keys never leave your device.
Why Veil?
Most messaging apps rely on centralized servers that can read your messages. Even “encrypted” apps often hold the keys server-side or require phone numbers that link to your real identity.
Veil is different:
- •True E2E — keys generated on your device, never uploaded
- •No phone number — cryptographic identity only (did:voidly:)
- •Voice & video calls — peer-to-peer WebRTC, encrypted signaling
- •Post-quantum — ML-KEM-768 resists future quantum computer attacks
- •Forward secrecy — every message uses a unique key via Double Ratchet
- •Metadata privacy — sealed sender hides who talks to whom
- •Deniable auth — neither party can prove the other sent a message
- •No App Store — works as a PWA, bypassing Apple review
Messaging Features
Everything you expect from a modern messenger, with encryption by default.
Voice & Video Calls
Peer-to-peer WebRTC calls with STUN/TURN traversal. Mute, toggle video, see call duration. Incoming call notifications.
Voice Messages
Record and send voice notes up to 30 seconds. Playback with speed control (1x, 1.25x, 1.5x, 2x) and waveform visualization.
Image Sharing
Send photos with inline preview. Full-screen viewer with zoom. Images are encrypted end-to-end like all other messages.
Emoji Reactions
React to any message with quick emoji (👍 ❤️ 😂 😮 😢 🔥). Reactions sync in real-time and show counts.
Reply & Quote
Reply to specific messages with quoted preview. Keeps conversation threads clear even in fast-moving chats.
Disappearing Messages
Set messages to auto-delete after 5 minutes, 1 hour, 24 hours, or 7 days. Per-conversation timer.
Read Receipts
See when messages are sent (✓), delivered (✓✓), and read (✓✓ blue). Know your message got through.
Typing Indicators
See when the other person is typing. Real-time animated dots so conversations flow naturally.
Security & Privacy
Nine layers of protection. Your messages, your keys, your device.
Double Ratchet E2E
Same forward secrecy algorithm as Signal. Every message gets a unique key — compromise one, and past/future messages stay encrypted.
Post-Quantum Protection
ML-KEM-768 + X25519 hybrid key exchange. Resistant to harvest-now-decrypt-later quantum attacks (NIST FIPS 203).
Sealed Sender
Metadata privacy — the relay cannot see who is talking to whom. Sender identity is encrypted inside the message.
Deniable Authentication
HMAC-SHA256 shared-secret auth. Neither party can prove the other sent a message — plausible deniability under duress.
Cover Traffic
Optional decoy packets hide when you are actually communicating. Network observers see constant noise, not real activity patterns.
TOFU Key Pinning
Trust-on-first-use key verification. Pin a contact's public keys and get alerted if they change — detects man-in-the-middle attacks.
Encrypted Channels
NaCl secretbox per channel. Create private groups where only members can decrypt messages. The relay sees nothing.
No App Store Required
Install from Safari — add to Home Screen. Works as a standalone app with full-screen display, push notifications, and offline support.
QR Identity Exchange
Share your cryptographic identity via QR code. No phone number, no email — just scan and connect.
Encrypted Group Channels
Create & manage
- •Create encrypted channels with name and description
- •Invite members by DID — accept or decline invitations
- •View member list with roles
- •Leave channels at any time
Encryption & verification
- •NaCl secretbox per channel (shared symmetric key)
- •Message signature validation
- •Attestations — cryptographically signed claims for censorship verification
- •Relay stores only opaque ciphertext
Data Portability & Sync
Export & Import
Export your identity as a JSON backup. Import on a new device to restore your full history and contacts.
Cloud Settings Sync
Sync display name, theme preference, and settings to the encrypted relay. Restore on any device.
Offline Queue
Messages sent offline are queued in IndexedDB and automatically delivered when connectivity returns.
Encryption Comparison
| Feature | Veil | Signal | Telegram | |
|---|---|---|---|---|
| E2E Encryption | ~ | |||
| Forward Secrecy | — | |||
| Post-Quantum | ~ | — | — | |
| No Phone Number | — | — | — | |
| Sealed Sender | — | — | ||
| Deniable Auth | — | — | — | |
| Cover Traffic | — | — | — | |
| Voice/Video Calls | ||||
| Disappearing Messages | ~ | |||
| No App Store | — | — | — | |
| Open Protocol | ~ | — |
~ = partial support. Telegram E2E only in “Secret Chats”. Signal post-quantum is PQXDH (recently added). Telegram disappearing only in secret chats.
How It Works
Create Your Identity
Open the app and generate an Ed25519 keypair. Your identity is a did:voidly: address derived from your public key. No email or phone number required.
Exchange QR Codes
Share your QR code in person, paste your DID, or search the directory by name. X3DH key agreement sets up a Double Ratchet session automatically.
Send Encrypted Messages
Type and send. Each message is encrypted with a unique ratchet key, padded to hide length, and sealed so the relay cannot see the sender. Messages arrive in real-time via SSE.
Call, React, Share
Make voice and video calls, send voice notes and photos, react with emoji, set disappearing timers. All encrypted end-to-end.
Join Encrypted Channels
Create group channels encrypted with NaCl secretbox. Only members with the channel key can decrypt. The relay stores opaque ciphertext.
Install on iPhone
Requires iOS 16.4+ and Safari. Works on any iPhone from iPhone 8 onwards.
Open in Safari
Visit msg.voidly.ai on your iPhone
Tap Share
Tap the share button (square with arrow)
Add to Home Screen
Scroll down and tap "Add to Home Screen"
Launch
Open from your Home Screen — full app experience
Also works on: Android (Chrome), macOS (Safari/Chrome), Windows (Edge/Chrome), Linux (any browser). On Android, Chrome will prompt you to install the PWA automatically.
Open VeilAdditional Features
Contact Management
Search the directory, add by DID or QR code, edit names, block/unblock. Trust badges show verified contacts.
Themes
Dark, light, or system-matched theme. Your preference syncs across devices.
Push Notifications
Native browser notifications for new messages. Toggle on or off in settings.
Key Rotation
Generate fresh keypairs at any time. Old sessions continue working while new ones use updated keys.
Technical Details
| Encryption SDK | @voidly/agent-sdk v3.4.0 |
| Key Exchange | X3DH (X25519) + ML-KEM-768 (NIST FIPS 203) |
| Message Encryption | Double Ratchet → XSalsa20-Poly1305 per message |
| Signatures | Ed25519 (tweetnacl) |
| Deniable Auth | HMAC-SHA256 with shared DH secret |
| Channel Encryption | NaCl secretbox (XSalsa20-Poly1305) |
| Identity | did:voidly:{base58} — self-certifying, no central authority |
| Voice/Video | WebRTC (Opus audio, VP8/VP9/H264 video, STUN/TURN) |
| Storage | IndexedDB (encrypted ratchet state, contacts, messages) |
| Transport | SSE primary, long-poll fallback, polling tertiary |
| Relay | api.voidly.ai (Cloudflare Worker + D1) |
| Offline | Service Worker shell + IndexedDB message queue |
| Cover Traffic | Optional decoy packets at configurable intervals |
| Themes | Dark / Light / System (persisted + cloud synced) |
Frequently Asked Questions
Ready to message privately?
No account needed. No phone number. Just open and start.
Open Veil