Voidly
All appsVeil

A private place
to talk.

Encrypted messages, calls and groups. Open Veil in your browser and make it yours. No phone number required.

Messages & callsYour own identityPhone & desktop
Inside VeilView full size
Veil’s conversation interface, showing a demonstration chat and message composer.
Actual app interface with a demonstration conversation.

A full conversation.
However you say it.

Start with a cryptographic identity. Exchange a DID or QR code, verify your contact, then message, call and share.

Say it your way

Messages, voice notes, encrypted images and WebRTC voice or video calls. Reply, react and search your conversations.

Bring your people

Invite contacts by DID. New encrypted groups are private by default; standard channels register the group name and member DIDs with the relay.

Set the boundaries

Verify contact keys and choose disappearing-message timers. Timers cannot stop a recipient from making a copy.

Your first hello
starts here.

Start in the browser. You can add Veil to your Home Screen when you’re ready.

  1. Make your identity.

    Open Veil and create your identity on your device.

    Create your identity
  2. Find your person.

    Exchange a contact ID or QR code. Compare safety numbers through a trusted channel.

  3. Keep a way back.

    Save your identity backup. Save message history separately if you want to carry it with you.

    See backup options

Your keys.
Your conversation.

Content encryption and metadata privacy are different promises. Read both before relying on either.

What the relay carries

Encrypted content, not your private keys. Double Ratchet message encryption and a hybrid X25519 + ML-KEM-768 key exchange protect supported sessions.

Automatic drop-box routing removes the stored sender/recipient edge for steady-state 1:1 messages between updated peers. There is no drop-box setting to enable.

What remains visible

IP addresses, timing and size classes remain relevant. Legacy-build peers have different routing exposure. First contact is linkable by anyone from the recipient's published keys: both ends can be recovered.

Cover traffic has its own opt-in Settings switch, independent of the privacy level. It blurs timing; it is not a mixnet or an anonymity guarantee.

Encryption and feature reference

Double Ratchet E2E

Per-message keys and ratcheting limit the impact of a compromised message key. Device compromise and contact verification remain separate risks.

Post-Quantum Protection

ML-KEM-768 + X25519 hybrid key exchange. Resistant to harvest-now-decrypt-later quantum attacks (NIST FIPS 203).

Drop-Box Routing

There is no setting for this. Steady-state 1:1 messages route through opaque per-pair mailboxes — no sender or recipient stored at rest, so a seized relay DB holds no who-talks-to-whom edge for updated peers. Residuals (IP/timing, legacy-build peers, and first contact, which is linkable by anyone from the recipient's published keys) are disclosed in full.

Deniable Authentication

HMAC-SHA256 shared-secret auth. Neither party can prove the other sent a message — plausible deniability under duress.

Cover Traffic (opt-in)

Its own switch in Settings, off until you turn it on. Decoy packets and a constant send cadence blur when you are actually communicating. This makes timing correlation costly, not impossible — it is not a mixnet.

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

Sender-key E2E group encryption — only members can read messages. Standard channels register the channel name and each member's DID with the relay; private groups — the default when you create one — leave no server-side group record at all.

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.

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.

Message Search

Full-text search across all conversations. Results show contact name, date, and highlighted match with context.

Message Forwarding

Forward any message to another contact. Search and select from your contact list — the message is re-encrypted for the new recipient.

Link Previews

Tap a link to load a text preview (title and description, no images). The tap sends the link and your IP to microlink.io, whose servers then load the page, so the site sees microlink, not you. microlink can also see the request comes from Veil. Nothing loads until you tap, and previews are off on the .onion address.

Presence Indicators

See when contacts are online, idle, or offline. Last-seen timestamps update automatically via shared polling.

Groups use sender-key encryption and admin-signed, fork-rejecting membership rosters. The app also supports contact blocking, key rotation, preferences, notifications where supported, and encrypted offline queues. Built on Voidly Relay.

Another path in

When the route
is the problem.

Alongside the web address, Veil provides a Tor onion service for the app and its message rail. Tor Browser can offer that route from the normal address when available.

A publish gate requires a byte-identical client build, or an honest holding page, rather than a silently different client.

The limit: this is not anonymity and does not survive an API outage. The onion host still reaches the API over the clearnet. It addresses blocking of your path, not every failure behind it.

Your next device
starts with a backup.

There is no password-reset shortcut for a lost cryptographic identity. Back up before you need to recover.

Identity backup

A passphrase-encrypted export restores keys and identity. It does not restore message history.

History backup

A separate passphrase-encrypted .veilhist export carries chat history across devices. The relay cannot re-serve old history.

Settings sync

Display name, theme and preferences only. Not messages. A forgotten backup passphrase cannot be reset.

One tap away.
On your Home Screen.

Veil is a web app. Keep it beside the other apps on your phone, or open it in your desktop browser.

Add Veil from Safari.

  1. Open msg.voidly.ai in Safari.
  2. Tap Share, then Add to Home Screen.
  3. Open Veil from its icon.

Installed-web-app notifications require iOS 16.4+ and browser support.

This is not a native App Store app. Installation prompts and notification support depend on the browser.

Open Veil

Before you
start a conversation.

Installation, recovery and the details worth understanding.

Make room for
a private conversation.

Open Veil