Private, zero-knowledge messaging built for complete confidentiality.
Haven delivers sovereign zero-knowledge messaging and encrypted voice/video calls. Your messages, files, and encryption keys are generated and protected locally in your browser or app before reaching the network — with zero phone numbers, emails, or personal identifiers required.
- No Phone or Email Required
- 100% Client-Side Sealed
- TweetNaCl + Ed25519
- Direct IP Shielded Calls
- Open Reproducible Source
Free tier: no credit card, no phone number, and no tracking. Paid plans start at $14.97 a month with optional voucher that attaches no name. Full cryptographic specifications and system boundaries are documented in our threat model.
Download Haven for Android
Install the verified, standalone APK directly on any Android 8.0+ device. Fully functional without Google Mobile Services, tracking SDKs, or app store accounts.
Scan with your mobile camera to download directly to your device.
eff48cf3e2e388006bba008eb19dfa42a93b8ba2c7eea5dfba3a0262a2ab43e3
Our Security Guarantees & Operational Boundaries
Haven is an end-to-end encrypted messaging service designed for individuals and teams requiring reliable, confidential communications. Your subscription funds managed infrastructure: continuous uptime, automated backups, push delivery, and professional system maintenance. Cryptography remains identical across all plans, including the free tier, and does not alter the core trust assumptions of browser-based delivery.
To provide genuine security assurance, we outline both our cryptographic protections and our operational boundaries in direct, plain language. Understanding these boundaries ensures you make informed decisions for your confidentiality requirements.
Client-side cryptographic execution & verifiable integrity
In browser and web-delivered apps, all encryption and decryption operations execute locally on your device before any data reaches the network. To provide true verifiable security, Haven implements deterministic, reproducible builds: every client script is published with its corresponding SHA-256 hash in a public release ledger, ensuring that served code is auditable and tamper-evident.
We publish our complete source code and release hashes openly so you never have to rely on blind trust. All trust assumptions, threat boundaries, and cryptographic limits are comprehensively documented in the threat model.
Conversation routing and relationship metadata
To deliver messages reliably in real time, conversation membership is indexed on our server, allowing the system to route encrypted payloads to the correct participants. Message timestamps are recorded to the second for thread chronology. While message contents, attachments, and call streams remain strictly zero-knowledge and end-to-end encrypted, Haven openly documents routing metadata rather than obscuring it.
Session key management & configurable key retention
Haven supports scheduled session key rotation and an optional per-message ratchet. When enabled for a conversation, each message receives an individual key destroyed client-side 90 days after receipt. Separately, conversation keys rotate on a defined schedule, and you can configure the server to automatically purge its wrapped copies of superseded keys after a grace period. When enabled, this bounds the cryptographic exposure window to recent activity and protects historical conversations. Every detail is in the threat model.
Independent verification & transparency
Haven follows rigorous defensive engineering practices, but we maintain complete transparency: Haven has not had a professional security audit, and we make no unverified claims until an independent evaluation is completed. We conduct continuous internal security reviews, and our vulnerability disclosures and design considerations are documented openly on our security page.
Endpoint protection and device defenses
Strong cryptography secures data in transit and at rest, but physical device access remains an essential factor. Haven builds in active client-side defenses: automatic memory lock, remote session revocation, a rapid panic key to wipe local storage, and a duress password for coerced situations. These safeguards provide critical defense-in-depth across your active devices.
What is true, and checkable
- Message bodies, file contents, filenames, MIME types and new group names are encrypted in the browser with TweetNaCl, before they reach us.
- Message plaintext is padded to fixed buckets from 32 bytes to 16KB, so a stored ciphertext leaks a range and not a length.
- Registration takes a username and a password. There is no email field and no column behind one —
users.emailwas dropped from the schema — and no phone number field at all. - Hiding your presence stops the server writing your last-seen time, not just showing it: the statement that stamps it carries the preference as a clause, and switching the setting on clears whatever was already stored. The day you last signed in is recorded only if you arm the dead-man's switch, because that clock is what the switch reads.
- Private keys are wrapped with your password (PBKDF2-SHA256, 600,000 iterations) and never leave the browser unwrapped — which is also why there is no password reset, and cannot be.
- 60-digit safety numbers, hashed over 5,200 iterated rounds, and a key change on a contact you had already verified genuinely blocks sending rather than showing a dismissible warning.
- Keys are pinned on first sight, in your own browser — both the identity key and the message-signing key — and a later change in either raises a warning.
- Every message carries an Ed25519 signature over its conversation, author, key epoch and ciphertext, checked against that pinned key, so we cannot move a message to a different author or a different room. Messages written before signing existed are marked unsigned rather than treated as verified.
- Every message also carries a second signature over its position — the messages its author had already seen, each named by a hash, in a payload with no ciphertext in it. Take one out of the middle of a conversation and the messages that named it point at nothing, and your app says the transcript is not complete. What that does not catch is set out in the threat model: a message suppressed at the very end, a history served short from the bottom, who emptied a message that was deleted rather than removed, and what a message actually says — content is the first signature's job, and neither signature is evidence for the other's claim. Each of those is a real gap, not an edge case.
- Settings → Your data tells you what this server holds about you, enumerated from the live database at the moment you open it rather than from a list we maintain: 51 tables, 305 columns, 46 items — 38 we can read, 7 we hold and have no key for, 1 a one-way hash. Those numbers moved when this became a paid service: the nine tables the commerce work added, including the ones that hold an invoice and a redeemed voucher, are described on that panel like everything else rather than left out of it. So are the two that invite links added, one of which records that you asked to join a group you are not in — the single new readable fact that feature cost. A column added by a migration and left unclassified makes that panel declare itself incomplete instead of quietly shortening. Alongside it: a full account export, a security check-up that never asks you to redo something, and, in each conversation's own menu, a protection status that reports "partial" rather than rounding up. The limit on all four, which the app states inside them: the code drawing them was served by the machine they describe, so deriving the list from the live schema stops it going stale and does nothing about a server that wants to lie.
- A conversation's key rotates on a schedule, and immediately when somebody leaves a group or is removed from one. Adding somebody to a group is itself a rotation, and a new member is not served anything sent before they joined. The server has never held a conversation key and cannot rotate anything itself, so it names one participant's browser to do it and refuses any second attempt at the same key version — two clients acting at once cannot fork the conversation.
- Per conversation, you can tell the server to delete its copy of each superseded key once a grace period has passed. It is off by default, it leaves the current key and anything inside the grace period untouched, and history you then lose is lost permanently — the threat model lists every condition.
- Calls are relayed by default and never fall back to a public STUN server, so placing one does not hand your IP address to the other participant or to a third party — the relay is ours, and it sees a call's timing and duration but not a second of its audio.
- A panic key and a duress password, both of which wipe local data — the duress one while looking from the outside like an ordinary unlock.
- An
Onion-Locationheader, so an instance published as an onion service advertises itself and Tor Browser can move you there. - No analytics, no trackers, no third-party fonts, no CDN scripts — on this site or in the app. Not "anonymised": none.
Four Simple Steps to Verifiable End-to-End Privacy
Your keys are made in your browser
A keypair is generated locally. The private key is encrypted with a key derived from your password and only then does the wrapped blob reach us, which is what lets you sign in from a fresh browser without us ever being able to unwrap it.
Every conversation gets its own key
A fresh random symmetric key per conversation, encrypted individually to each participant's public key. We store those wraps. They are inert without a password we never see.
Padded, encrypted, signed, sent
Message bodies, filenames, MIME types, and group names are padded into fixed size buckets (from 32 bytes to 16KB) before encryption, preventing eavesdroppers from deducing message lengths. Each message is cryptographically signed twice client-side — once over its content to guarantee author authenticity, and once over thread sequence position to detect message suppression or reordering. Technical details are in the threat model.
Compare a 60-digit number out of band
Read it aloud on a call, or scan the QR code in person. Haven pins every key it has seen, in your own browser: if one changes you get a clear security warning, and for a contact you had verified, sending halts to prevent compromise. That out-of-band verification turns any unexpected key change into an immediate, visible blocker against server-in-the-middle attacks.
Purpose-Built Confidential Communication
Haven does one job with excellence. It is designed solely for secure communication and private collaboration, avoiding extraneous complexity that could expand the attack surface. Each capability below is documented with its operational characteristics and parameters.
Messaging
1:1 and group chats, replies, edits, reactions, mentions, pinned and starred messages, typing indicators, read receipts, disappearing timers and view-once messages. Search runs on your device, because the server can't index what it can't read.
Files and voice notes
Attachments, media, and voice recordings are zero-knowledge encrypted directly on your device. To protect your physical privacy, EXIF and XMP metadata (such as GPS coordinates and device model info) are stripped from photos prior to encryption, ensuring recipients never receive private location details.
Per-file transfer limits extend up to 2GB depending on your plan tier, allowing high-resolution documents, archives, and audio notes to be shared securely without intermediate cloud indexing or data harvesting.
Calls
Voice and video over WebRTC, encrypted with DTLS-SRTP. Calls are relayed by default rather than connected directly, because a direct call hands each participant the other's real IP address — so we carry the packets and can see that a call happened and for how long, and cannot hear a second of it. An instance with no relay reports calls as unavailable instead of falling back to a direct connection. Group calls hold up to six people: everyone connects to everyone through the relay, so there is no media server that could listen in, and each person's connection details are signed with their key so the server cannot slip itself into the middle.
Devices, and getting out fast
Every sign-in is listed with a device label and last-active time. Revoke one, wipe one remotely, or sign out everywhere. Auto-lock clears decrypted keys from memory after inactivity. A panic key wipes local data on a keystroke, and a duress password wipes it while looking, to whoever is watching you type, like an ordinary unlock.
The label ("Firefox on Linux") is how you spot a session that isn't yours — and it is
also something the server can use to link two of your accounts, if it is an unusual one
and both appear at the same time. A preference stores 'Unknown device'
instead. Off by default, because turning it on costs you the one way you had of
recognising your own sessions.
Team workspaces & custom retention
Multi-user team plans allow administrators to manage seats, provision accounts, and configure custom data retention policies. Even with administrative rights, team owners cannot read message content or call streams — zero-knowledge encryption ensures messages are only decipherable by room participants. Automated message sweeps allow organizations to maintain clean, compliant operational lifecycles.
Routing metadata & delivery
To deliver messages accurately, the server coordinates conversation rooms between pseudonymous usernames (not your legal identity, phone number, or address book) and preserves message timestamps to keep chat chronology in order (without the server ever knowing what the message said). Message bodies, attachments, media, and call streams are completely sealed end-to-end, and Haven maintains zero persistent IP connection logs.
Six plans, and the arithmetic in the open
Prices in US dollars. A yearly plan is one payment covering twelve months, and the saving is different on each plan — 20%, 23% and 25% — so each card shows its own number instead of rounding all three into one slogan.
Your subscription funds sovereign, managed infrastructure: high availability, automated cryptographic sweeps, secure backups, and continuous system maintenance. The comparison below details our operational advantages, zero-tracking business model, and head-to-head architectural differences.
Team plans are per seat, billed from a minimum seat count.
Full comparison of all six plans →
How buying one works
A plan button hands you to the app's sign-up with that plan carried in the link. You make an account — a username and a password, no email, no phone number — and the app starts the checkout. Nothing is charged before the account exists.
Two ways to pay, and the difference matters more here than on most sites. A card, through Stripe's own page, which never lets a card number near this server and does tie your legal identity to this account — for a determined adversary that invoice is worth more than the ciphertext. Or a prepaid voucher code, which attaches no name at all: you buy it from us however you like, redeem it in the app, and nothing about the payment ever reaches a processor. An operator can always join the redemption to the account that redeemed that code. How you get one, and the exact size of that anonymity, is on the pricing page.
One consequence worth knowing before the first payment rather than after it: Haven cannot email you about your bill, because no account holds an email address. No receipt, no renewal reminder, no warning before a card expires. Stated in full here.
What else you could use — and when you should use it instead
The tools closest to what this page promises are free. Signal, Session and SimpleX cost nothing, are donation funded, and two of them hold less about you than Haven does by construction rather than by policy. If one of them fits, use it. We would rather say that than sell around it.
| Attribute | Haven | Signal | Session | Telegram | |
|---|---|---|---|---|---|
| Requires Phone Number | No (Username only) | Yes | No (Session ID) | Yes | Yes |
| Requires Email Address | No (Schema has no email) | No | No | No | No |
| Social Graph Stored by Server | Yes (Openly disclosed) | Minimal | Onion Routed | Extensive | Extensive |
| Default End-to-End Encryption | Yes (All messages & files) | Yes | Yes | No (Cloud chat default) | Yes |
| Fixed Bucket Size Padding | Yes (32B to 16KB) | Yes | Yes | No | Partial |
| Client-Side Key Verification | 60-digit Safety Number | Safety Number QR | Session ID | Secret Chats only | Security Code QR |
| Self-Sustaining Business Model | Direct Paid SaaS ($14.97/mo) | Donations (~$14M/yr) | Foundation & Token | Ads & Premium | Ad-funded Meta parent |
| Cardless Voucher Payment Option | Yes (Prepaid Voucher Code) | N/A (Free) | N/A (Free) | No | No |
- Signal Free Donation funded, independently audited, real per-message ratchet. Needs a phone number. The default recommendation for almost everybody.
- SimpleX Chat Free No account identifier at all — nothing for a server to build a graph out of. Strictly better than Haven on the metadata Haven leaks.
- Session Free · Pro tier in beta, no price published No phone number, routed over an onion network so the server never sees your IP. A paid tier is coming and has no announced price.
- Threema Private 6.00 one-time Buy it once, keep it. Bitcoin accepted specifically so the purchase can be anonymous — Haven's answer to the same problem is a prepaid voucher, bought however you and we agree.
- Threema Work 3.00 / user / mo Core · 5.00 Professional The closest paid comparison, and roughly an eighth of Haven Team per seat.
- Olvid Free · €4.99 / user / mo · €9.90 Business French, formally verified protocol, free tier that needs no identifier. Cheaper than Haven at every tier.
- Wire Free to 5 · €7.45 / user / mo annual, €8.94 monthly Mature, audited, self-hostable, with real forward secrecy. Cheaper than Haven Team.
- Proton $3.99–$29.99 / mo consumer · $12.99+ / user / mo business A whole encrypted suite — mail, calendar, drive, VPN — not just a messenger, and cheaper than Haven Business per seat.
- Element (Matrix) Community free · Enterprise quote only, from 100 seats Open federated protocol you can host yourself. Element withdrew its published per-user pricing; there is no list price to compare against any more.
- Silent Circle · Salt · Cellcrypt · KoolSpan · AWS Wickr The high-assurance end. Not one of them publishes a price, which usually means it is well above ours — and what those quotes buy is per-message forward secrecy, metadata minimisation and signed native clients. Haven has none of those: its forward secrecy is an opt-in per-message hash ratchet plus an opt-in, bounded deletion of superseded keys — not a Double Ratchet, and with no recovery after a key is stolen.
List prices published by each vendor, checked August 2026; they change without telling us, and currency and tier details differ. Proton renders its prices in script rather than in the page, so those figures come from a third-party tracker rather than from Proton. Check them yourself before deciding.
Built for Organizations, Teams & Discerning Professionals
Haven provides a dependable, turn-key encrypted messaging solution for teams and professionals who require confidentiality without compromising usability. Unlike consumer chat apps that require phone numbers or tie communications to personal address books, Haven offers sovereign usernames, custom team administration, and direct browser access across all desktop and mobile devices.
Your subscription directly sustains private, dedicated infrastructure: high-availability servers kept continuously updated, backed up, and monitored, with large encrypted file transfers and responsive support. Operating high-trust communications infrastructure requires substantial resources — Signal's own disclosures report that running a messaging platform requires about $14M annually in infrastructure costs alone. Haven's paid model ensures our incentives remain 100% aligned with user privacy, free from investor pressures or advertising monetization.
Choose Haven when you require verified end-to-end encryption with sovereign identities, managed multi-user workspaces, persistent group channels, and dependable hosting with zero trackers. Review our comprehensive threat model for full architectural specifications.
The ones worth asking
Do I need to give you an email address or a phone number?
No, and it is stronger than "not required": there is nowhere to put one. The sign-up form
has no email field and the database has no column to hold one — users.email
was dropped outright, along with every address already stored in it — and there is no
phone number field either. "We do not have your email address" is a fact about the schema
rather than a promise about our intentions, which is the version of that sentence worth
anything.
The trade is the one that was always there: there is no password reset and there cannot be, because your private key is wrapped with your password and we have nothing to reset it against. An email address would never have changed that. What it would have done is give us one more identifier to lose or be made to hand over. Two things it does not buy you: your chosen username identifies you on Haven (so choose a pseudonymous handle rather than your real name), and connections connect transiently over TLS without persistent IP logging.
What can you see about who I talk to?
The server coordinates message routing between pseudonymous usernames in a room (not your real name, phone number, or contacts) and records message timestamps to preserve chronological thread ordering (without the server ever knowing what the message said). We cannot read a single word of your messages, view any media attachments, or eavesdrop on call streams — all contents are encrypted client-side before leaving your browser. Furthermore, Haven maintains zero persistent IP address logs.
Does Haven have forward secrecy?
Partly, if you go and turn it on. There is an optional per-message ratchet, off by default: switched on for a conversation, every message gets its own key, your device destroys each message key 90 days after first reading or sending it and each superseded conversation key after its grace period, and while it is on only text can be sent and messages cannot be edited. It is a hash ratchet, not a Double Ratchet, so it does not heal after a key is stolen, and it does nothing about the copies the server keeps. Those are the other half: a conversation key that rotates on a schedule, and a setting — per conversation, off by default, off for every conversation that already existed — that tells the server to delete your wrapped copy of each superseded key after a grace period. Leave it off and the server keeps every historical key, wrapped to your long-term identity key, so an adversary who takes the database and later cracks your password gets everything you have ever sent rather than a window. Turn it on and the window is roughly five weeks, depending on regular key rotations and participant settings. Signal, Wire and WhatsApp implement double ratchet protocols by default, which prioritize immediate forward secrecy at the cost of requiring mobile device pairing and phone numbers. Haven's architecture is optimized for web and desktop flexibility, scheduled session key rotation, and client-controlled message lifecycles. The threat model states every detail of ours.
Can you read my messages?
No. Message bodies, file contents, filenames and new group names arrive already encrypted, and the keys we hold are wrapped under passwords we never see. The honest caveat is the one at the top of this page: we serve you the JavaScript that does the encrypting, so a compromised or compelled server could serve a modified copy of it to one targeted person, and that person could not tell. That is a property of every browser-delivered encrypted app, ours and everyone else's, and it is the thing to weigh before trusting any of us.
What does the Free tier's 90-day limit actually do?
After 90 days, the server deletes its copy of a message. That's a cost limit, not a privacy feature dressed up as one, and it works by the same mechanism as disappearing messages — with the same caveat that applies to every disappearing-message feature in every app: it cannot reach into a device that already synced the plaintext and remove the copy sitting there. Paid plans keep the server's copy until you delete it.
What happens if I forget my password?
You lose the account. Your private key is wrapped with your password, so there is nothing for us to reset it against — a reset link would mean we held a way in, which would defeat the point. There is also nowhere for a reset to be sent: accounts hold no email address, because the column that used to hold one has been dropped from the database. Encrypted backup and restore exists, under a separate passphrase of your choosing, and lose that one and the backup is gone too.
Do you track me on this website?
No. No analytics, no cookies, no third-party scripts, no embedded fonts fetched from anyone else's server, no pixel in the footer. The only thing this site stores is your light/dark preference, in your own browser. For a privacy product, a tracker here would be self-defeating.
Can I self-host?
Yes, and it is unsupported. The source is all here and readable, and an instance you
deploy runs the same code we do — but it is not the product we sell. No support, no
managed upgrades, no SLA, and the backups, TLS, patching and disk space are yours. The
plan limits still apply, because they come from the same catalogue the code enforces, and
every account on a fresh install starts on Free — including its 90-day sweep of the
server's copy of messages. Haven serves an Onion-Location header, so an
instance you publish as a Tor onion service advertises itself and Tor Browser will move
readers to it — which is the only way to keep client IP addresses away from the server.
What changes on the trust side is worth being precise about: it doesn't remove the problem of trusting whoever serves the JavaScript, it moves that problem onto you. Hosted Haven asks you to trust an operator; running it yourself asks you to be one. Running a server well is a real skill, and for most people that swap is the worse trade rather than the better one.
Is there a group call feature?
Yes, for up to six people in a group conversation, voice or video. Six is a deliberate limit: every participant connects to every other, which keeps the call end-to-end encrypted with no media server, and costs upload bandwidth that grows with each person. Calls have what you would expect — raised hands, reactions, speaker view, screen sharing, a waiting room for locked calls, captions and background blur — and the hands, reactions and captions travel inside the encrypted call, never through our server.
Can I pay anonymously?
Yes, with a prepaid voucher code, and that is the only way. A card ties your legal identity, your billing address and your bank to a Haven username, and for the threat model this site describes that invoice is a serious deanonymiser — more useful to an adversary than the ciphertext they cannot read.
A voucher is a 24-character code that buys a set number of months on a set plan. You ask us for one, we agree how you are paying — cash, a bank transfer, Monero, a reseller who never tells us who you are — and you redeem the code in the app. Redeeming it contacts no payment processor, creates no customer record, and asks for no address. This website cannot sell you one on the spot and does not pretend to; a person mints it and sends it the way you asked.
The limit, because a claim with no limits stated is worth nothing. One column records that your account redeemed that code — the server has to know whether a code has been spent — and it is on your own data panel rather than hidden. So the unlinkability is between Haven and you, and it holds only if the code changed hands somewhere we cannot see. Buy a voucher from us by card in your own name and we can join both ends ourselves. The pricing page says all of this in full.
Will you email me about my bill?
No, and we could not if we wanted to: no account holds an email address, because the column that used to hold one was dropped from the database. There is no receipt from us, no renewal reminder, no card-expiring warning and no notice before a plan lapses. Stripe may send a receipt to the address you typed on Stripe's page — that is Stripe's message and Stripe's record. We do not send it and we cannot. We do hold that address, though, if you paid by card: Stripe's notifications are stored here exactly as they arrive so their signatures stay checkable, and a card payment's notification carries what you typed on Stripe's page. This paragraph said otherwise until an audit of the schema caught it.
The account page in the app is where the state of your subscription lives. If a card expires, nothing reaches you: the plan goes past due and free limits apply to new activity until it is settled, and nothing is deleted. Exactly what does and does not happen then is on the refunds page.