
I am smitten with DeltaChat...
DeltaChat has been making massive strides lately and I think you should consider using it as your full time secure messenger.
"But Email..."
No, You Are Wrong
"PGP is ..."
Slow Down. You've Been Misinformed. Hear Me Out...
Whenever a DeltaChat discussion is about to gain momentum in a social forum there's always someone who has to step in and say something like "actually, email is bad and this will never work so nobody should use it".
It keeps happening over and over.
This blog post is commonly used to reinforce the position: Stop Using Encrypted Email.
It's actually a good blog post: metadata is as important as content.
Too bad none of that matters with DeltaChat + Chatmail. No user metadata is exposed. 🤠
Everybody Hates Email
As soon as people hear it works over email they get a negative reaction. I don't blame them. Nobody wants to make their email experience noisier than it already is.
Nobody wants more email.
Agreed. So take a deep breath. You will not use your normal email address with DeltaChat. In fact, you should not even try unless there is no other possible way for you to use the software. But you probably want more technical details about this thing first before you even try it.
Chatmail Fixes Almost Everything...
DeltaChat developed a messaging-optimized email server stack called Chatmail. Anyone can deploy a Chatmail server. But what is it exactly?
- Dovecot, patched to reduce latency on deliveries (long story, old hack, never should have existed)
- Postfix
- DKIM/SPF
- Nginx which can accept SMTP/IMAP over 443 if necessary
- Lua scripts
- Python services (custom auth, relaying push notifications, etc)
- Crons
- Log retention changes
That's about it, but the devil is in the details.
The services have very specific configurations which eliminate the need for spam filtering because the accounts are not enumerable and Chatmail to Chatmail is always going to be encrypted: users cannot send unencrypted emails.
📢 No Spam filtering required. Users cannot send unencrypted emails.
You can run a Chatmail server anywhere. You do not have to worry about having a "clean" IP address: none of the Chatmail servers are going to check your reputation. Message deliveries generally happen in well under a second. It's just as fast as any other messenger. If you want, you can run a server and never open port 25 to achieve a fully private non-federating DeltaChat server. This is a completely valid use case.
📢 DeltaChat only uses email as a message router for encrypted data packets.
This is the most important detail. Everything that could be identifying is within the encrypted data: the chat subject, group chat IDs, usernames, bios, avatars, and more.
📢 No user metadata is exposed.
Don't believe me? Here's an example of an email federated between ChatMail servers. Only the MIME headers required for basic operation are transmitted:
Return-Path: <mjqn1pkwn@nine.testrun.org>
Delivered-To: az2g6a4rm@chat.feld.me
Received: from chat.feld.me
by chat.feld.me with LMTP
id mOj6EHiEy2dc+AoABSkkNg
(envelope-from <mjqn1pkwn@nine.testrun.org>)
for <az2g6a4rm@chat.feld.me>; Fri, 07 Mar 2025 23:42:48 +0000
Authentication-Results: chat.feld.me;
dkim=pass (2048-bit key; unprotected) header.d=nine.testrun.org header.i=@nine.testrun.org header.a=rsa-sha256 header.s=opendkim header.b=sTqiSsXl;
dkim-atps=neutral
Received: from nine.testrun.org (unknown [116.202.233.236])
by chat.feld.me (Postfix) with ESMTPS id 1D00241A7E
for <az2g6a4rm@chat.feld.me>; Fri, 7 Mar 2025 23:42:48 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nine.testrun.org;
s=opendkim; t=1741390966;
bh=4ZQ3OEA3t9cdhwzd78OTE++7e62kij1KOaRk+RsCiIw=;
h=Content-Type:From:To:Subject:Date:In-Reply-To:References:
Autocrypt:from:reply-to:subject:date:to:cc:resent-date:resent-from:
resent-sender:resent-to:resent-cc:in-reply-to:references:list-id:
list-help:list-unsubscribe:list-subscribe:list-post:list-owner:
list-archive:autocrypt;
b=sTqiSsXle4QNMnJFTLnfEATYcgdDPyJFyahD3fck6K/ypKsxNRXcPRcj6wDvNt9tG
4qZAdZnZOBsqOqOOyp/Bzok0zKM6oKjH40fn1QHcdef3Icf49OcJjJU0tcmAC7esOf
N8h9c/tiPK3tqnPvUzPbrzMq9+KIHFhTZR1Kk7Ss+YSldhbe5JdVujO8fNGTPLSc6o
ufHXK+axYdFFHr9aZUepjGqwLwp5yhp/4qp2yan76v+V27kbIjR0jMNMQOayGlRSyP
QlKqLWiQAfZCdduPOknys5aYiPHBvQd3H6btAq5T6Tqagp/AhP8FJX1sEuDPDJ5Dlu
pwjifV76ehEuA==
Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
boundary="182aa9db986a3c08_1f948b76776bd149_5d07d7477b63a965"
MIME-Version: 1.0
From: <mjqn1pkwn@nine.testrun.org>
To: <az2g6a4rm@chat.feld.me>
Subject: [...]
Date: Fri, 7 Mar 2025 23:42:46 +0000
Message-ID: <7c317026-2d8b-4135-9869-9688314fdde7@localhost>
In-Reply-To: <X1X_vnlv5fizJEqkxIGBGPq0@localhost>
References: <X1X_vnlv5fizJEqkxIGBGPq0@localhost>
<X1X_vnlv5fizJEqkxIGBGPq0@localhost>
Chat-Version: 1.0
Autocrypt: addr=mjqn1pkwn@nine.testrun.org; prefer-encrypt=mutual; keydata=xjMEZ5P1shYJKwYBBAHaRw8BAQdAmbIId9Gzjg6GDmmqSoG9mUtZEhAPBua9Re2Z/qJzlY
3NHDxtanFuMXBrd25AbmluZS50ZXN0cnVuLm9yZz7CjQQQFggANQIZAQUCZ5P1sgIbAwQLCQgHBhUI
CQoLAgMWAgEBJxYhBG55u+IkWTYVKTwk2ry/2uHxQKZjAAoJELy/2uHxQKZjyTkBALcPOp1OJXp8F8
aDTgYI+J5FlDE9vpi/+b2gg3oYMSRHAP9/jWJJbvCOEw05gTFiD8ZRCizWVdhDgl8wpiXcM6x0A844
BGeT9bISCisGAQQBl1UBBQEBB0DOUvFcmyxVodeZVX76b3nutMmA2fMCuVm22gkGemB1MwMBCAfCeA
QYFggAIAUCZ5P1sgIbDBYhBG55u+IkWTYVKTwk2ry/2uHxQKZjAAoJELy/2uHxQKZjNqwA/3QDBsYg
tY+p7ggHEZPlgPM96TRDtCwROVZJtF1FXpl/AP9twrh+fcGiCC2HK0lOVmataaqjiHpTxLaWb3L68F
SODw==
--182aa9db986a3c08_1f948b76776bd149_5d07d7477b63a965
Content-Type: application/pgp-encrypted; charset="utf-8"
Content-Description: PGP/MIME version identification
Content-Transfer-Encoding: 7bit
Version: 1
--182aa9db986a3c08_1f948b76776bd149_5d07d7477b63a965
Content-Type: application/octet-stream; name="encrypted.asc";
charset="utf-8"
Content-Description: OpenPGP encrypted message
Content-Disposition: inline; filename="encrypted.asc";
Content-Transfer-Encoding: 7bit
-----BEGIN PGP MESSAGE-----
Where's the sensitive metadata? No real names on the addresses, no client IPs, nothing of value here. Go ahead and seize the server, they'll only get the maildir files which haven't been auto-deleted yet and no useful logs.
⚠️ If your account is only on one device it automatically deletes the email off the server after downloading it. Multi-device accounts let the server expire the messages automatically. This is probably changing soon with additional functionality via Iroh.
... And Iroh Fixes The Rest
DeltaChat has spent a lot of time collaborating with Iroh to integrate secure E2EE P2P communications between users and your own devices. It punches through NATs and just works. The Iroh connection can then be used for lots of functionality that bypasses the need to interact with the email servers. This is yet another innovation that ensures no central servers are required for DeltaChat to work.
Things this feature makes possible:
- Secure realtime location sharing
- Syncing of state between devices
- Realtime P2P apps in the chats with WebXDC apps
- Securely transferring accounts between devices (requires same local network for security purposes)
The team definitely has a lot of exciting things on their roadmap.
But I Heard PGP Isn't Even Secure
The Rust PGP library being used has been audited. DeltaChat has been audited multiple times. A very specific subset of PGP has been used and the entire UX of the app ensures nobody has to be aware of PGP.
What crypto is being used though?
Currently it's using the same base cryptography implementation that Signal uses (ed25519-dalek rust crate, before Signal even adopted it). Delta Chat generates Ed25519/Curve25519 identity key and encryption subkeys. For the symmetric cipher (used by session keys) it uses AES128.
Does it have PFS? I want PFS. Everyone says you need PFS.
PFS has really become a buzzword. You don't benefit from it unless you have disappearing messages. You can find a more detailed explanation here.
PGP may gain PFS. It is being evaluated. But actually, Delta Chat already comes with PFS for the Iroh P2P connections.
I want Post-Quantum cryptography
It's coming once the draft has been adopted.
Please, just look at all the hard work that has been put into this.
I Don't Want Another Email And How Would My Friends Find Me
Don't treat this as another email address. It looks like one, but it's not. wink wink
The signup flow is ridiculously simple. Install the app (Android, iOS, Mac, Win, Linux), choose a server (here's mine, the dev team runs this one), click the signup link or scan the QR code, and that's it. It will randomly generate a new email address and password for you. No captcha, no puzzles. Instantly provisioned new account.
"Wait, instant anonymous account provisioning?"
Ok, so this is where things get confusing for people.
Chatmail servers offer free, instant email address signup. The mechanism is literally "try to login with a random email address and password" and if the account doesn't exist it's registered immediately. This is done through the aforementioned custom auth integration with Dovecot.
"That's terrible, you're basically creating an open relay and we suffered from enough spam due to those".
Remember, you can't send an email that isn't encrypted. Spammers don't send encrypted mails. This is completely useless to them.
"I won't even know my own account?"
You never really need to know what it is. If you want, you can find the address and password in the app settings.
Now that you have an account, use your invite QR code or link and send it to your friends however you want: regular email, SMS, another chat platform, print it on a postcard. All they have to do is click the link or scan the code. They'll be prompted to install the app if they don't have it, but then they'll instantly be connected to you as a contact. You can even share a link or QR code to a group chat.
Please try it. And if you have more questions about the security or operation of the app, how push notifications work securely and anonymously, etc read the very extensive FAQ.
Alternative Clients?
DeltaChat has done a wonderful job of building a robust cross-platform library in Rust which helps them to build a native app on each platform. You get the same quality experience on all of the supported OSes so there is no worry about which clients support which features. One alternative client for Android is ArcaneChat, which uses the same core as the official DeltaChat app.
You can find additional information about alternative clients here.
Really -- Why Email?
Inventing a new protocol for instant messaging is a lot of work. XMPP could be great, but it's very fragmented. Everything needed to build a secure messaging system on top of email already existed, and we know the existing software scales and is battled hardened from years of deployment.
There are also certain benefits of using email: it's harder for a country to block it if they want to prohibit secure messengers that do not have mandatory backdoors. They'd have to block all known Chatmail servers, but new ones can be deployed very quickly. You can also change your email address and password in your settings to any address - even a new Chatmail server -- and your contacts will instantly update the address they use to reach you as soon as they receive your first message because your key did not change. This is a feature called AEAP - Advanced Email Address Porting. There has been discussion about the possibility of auto-rotating your identity which I feel is such a powerful concept that will have a huge impact on privacy tools for the masses.
Does It Have My Favorite Messenger Features?
I hope so. Maybe the biggest limitation right now are that sharing large media files is not natively supported -- you have to use one of the large-file-transfer web services. Also audio/video calls are not yet natively supported -- you can configure an existing Jitsi or Big-Blue-Button service in advanced settings to obtain an "invite to video chat" action in a chat.
- Group chats
- Markdown if you want
- Inline attachments (audio/video)
- Voice messages
- Location sharing
- Very good support for multiple accounts/profiles
- Search (tested with accounts that have 400k+ messages, works fast)
- Disappearing messages
- Notification muting
- Presence (only sorta; more like a "recently seen")
- Very friendly on unreliable networks
- Custom chat backgrounds
- Invite links/codes can be deactivated/regenerated
- Contact sharing (to introduce users to each other securely)
What Aren't You Telling Me?
There are a few shortcomings coming from other messengers. Some missing features are getting released any day now. But a few things I think people should be aware of at time of writing:
- When you use your account on multiple devices, there isn't a way to revoke access right now. Be mindful about this.
- Groups are meant to be between people you can trust as they do not have ACLs yet. Anyone can add or remove anyone else, change the group name/subject, avatar.
- Message editing (coming very soon)
- Deletes happen across all devices and you can delete from other people's devices. (coming very soon)
- Joining a group or invited to a new chat shows no history, so it can look dead/empty.
- Link previews do not exist (yet)
- Typing notifications (definitely possible with Iroh)
I'll Try It
Cool. Send me a message, I'll play you in Connect4 or something and demo DeltaChat's features for you if I'm awake.
How Can I Contribute?
If you can't send code or run a Chatmail server (it's really cheap and low resource!) you can help fund the dev team making this possible.