Sending end-to-end encrypted e-mail with Moonfish

Ronald Mannak
4 min readAug 26, 2022

--

TL;DR: Enable Moonfish in Mail’s Preferences and send a signed e-mail to me (use my ENS web3 username: ronaldmannak@eth) and I will reply with an encrypted e-mail. Once you receive my reply, we communicate fully encrypted.

This blog posts assumes you have set up Moonfish and are now ready to send end-to-end encrypted e-mails. Follow along the video above or the text below to learn how enable Moonfish in the Apple Mail app.

Step 1: Enable the Moonfish privacy extension

Open the Apple Mail App, and go to Preferences (⌘,) and open the extensions tab. You’ll see Moonfish Privacy in the list. Select Moonfish Privacy and confirm the selection by clicking on Turn On.

That’s it. Moonfish will now be enabled in the Mail app.

Apple Mail Preferences
Apple Mail Preferences

Step 2. Prerequisits

For sending encrypted emails you’ll need two things:

  1. The email address or web3 ENS username of someone who has Moonfish installed
  2. The public key of that person

If you’ve just installed Moonfish and haven’t opened Moonfish signed e-mails from you may have received, chances are you have neither.

You can verify the public keys known to you by composing a new email (⌘N) and click on the Ethereum icon. If the list below ‘Contacts who can receive encrypted e-mails” is empty, you’re not able to send encrypted emails yet.

How do you add users and public keys to this list? Moonfish will do that for you automatically, every time you open a signed or encrypted e-mail.

What we can do, is send a signed e-mail to someone else. When we send a signed e-mail, our public key is automatically embedded in the e-mail. The recipient can now send us an encrypted e-mail. Let’s try that out.

Step 3. Sending a Signed E-mail to an ENS web3 username

Compose a new email (⌘N). Make sure the Encryption button (🔓) is deselected and the Seal/Sign button (✔) is selected.

Here’s a cool Moonfish feature: You can send e-mails to ENS web3 usernames.

Let’s send e-mail to me. My web3 username is ronaldmannak.eth. In order to send an email, replace the dot with a @. So to ronaldmannak@eth. Once you type that in, Moonfish will verify the web3 username. If you click on the disclosure button (🔽) next to the web3 username, you can verify that Moonfish has resolved the username to r@moonfish.app, my e-mail address.

Send it! ⛑ A TouchID view will pop-up to allow access to your Ethereum key. And that’s it. That’s all there is to it.

Once I receive your e-mail, I will reply with an encrypted email as soon as I can.

Once you receive my reply, you’ll see something like this:

The reply message is fully encrypted. It will be stored encrypted on your disk, it is stored encrypted on the mail servers. Cool. Every time you open an encrypted mail, Apple Mail will ask for your TouchID to decrypt the message.

If you’re interested to see how it the encrypted email looks like, select View > Message > Raw Source (or ⌘U)

That’s all there’s to it. It’s so unobtrusive, it’s hard to believe it’s crypto.

Step 4. Keep the Sign button on by Default

Remember:

  1. You can only send encrypted e-mails to people who use Moonfish and whose public key you know.
  2. You can send signed emails to everyone, even those who do not have Moonfish installed. I personally just keep the sign button selected all the time. As the Moonfish community grows, people will thank you.

What’s next

Here’s how you can be one of the first people to use Moonfish Beta.

  1. Join the Beta waitlist at moonfish.app
  2. Join our Discord for updates and to provide feedback
  3. Follow us on Twitter
  4. Support our Gitcoin application

If you haven’t already, see our background story: Pretty Good Crypto: Ethereum encrypted e-mail.

--

--