Turms Anonymous Message Transport is a peer-to-peer messaging system for sending encrypted messages between Ethereum addresses. It’s completely decentralized: It runs on the Ethereum blockchain with no backend server at all. The user interface, which runs in your browser, can be loaded from IPFS. If you haven’t heard of Turms AMT, here’s an introduction. In this article I’m going to walk you through your first time setting up and using Turms Anonymous Message Transport.

Registering an Account

Browse to the Turms AMT DApp. The first time you load the DApp you’ll be presented with a set of slides that go over the main features. I do recommend that you read through the slides: it only takes a minute or two, and they’re worth your time. In this article I’m going to skip the slides, so the next thing that you’ll need to do is unlock and connect MetaMask. Here are some images to show you these steps:

If you have Privacy Mode enabled in MetaMask, then you’ll see this screen:

As soon as MetaMask is connected you’ll be asked to sign a special message. This message is never sent on the Ethereum blockchain, and you can see the text of what you’re signing:

We create a unique encryption key for each sender/receiver pair of Ethereum addresses. By signing this message you will create a secret code to unlock your half of each pairwise-key. Your secret code is never shared, transmitted, or even saved on your own computer. That is the reason you need to sign this message each time you load Turms Anonymous Message Transport.

Go ahead and sign the message so that you create your secret key.

Note: Sometimes the MetaMask dialog doesn’t “pop up” in front of the browser window. If you see a green box that says “Waiting for MetaMask signature,” but you don’t see the MetaMask dialog, then just click on the small MetaMask fox icon in the top-right corner of your browser.

Once the message is signed you need to register your account. It doesn’t cost anything to register an account, but you will be sending a transaction on the Ethereum blockchain, so there will be gas costs. To register, click the “Register Account” button. Note: You’re not giving anything away when you register your Ethereum address with Turms AMT — You’re just listing your Ethereum address with the Turms AMT smart contract as a potential recipient of Turms messages. Even when someone sends you a message, it never actually touches your Ethereum address — it’s stored in the Turms AMT smart contract for you to retrieve whenever you want…

You’ll be asked to fill in two fields: The spam-fee is the amount that you want to be paid for every message that is sent to you from someone to whom you have never sent a message. If you set this to a high value, anything above 1 or 2 Finney, then you won’t receive much spam at all. The other field is the message-fee. This is the amount that you’ll be paid for every other message that you receive. You should probably leave this at zero, or at most set it to a few hundred Szabo — if you set it much higher, then even your friends won’t want to send you messages. After you set your message-fee and spam-fee, click the Submit button, and confirm the transaction:

Congratulations! You have now (after the transaction is mined) registered your Ethereum address with Turms AMT. By the way, if you ever decide that you want to change your message-fee or spam-fee, you can do so by selecting the “modify account” button (where the register account button used to be).

Your First Test Message

Most people want to send a test message to themselves as soon as they register with Turms AMT. If you send a message to yourself then you’ll need to pay your own spam- fee (since you’ve never received a message from your own address). It might not bother you at all to pay a 2 Finney spam-fee, since most of the fee goes to you anyhow. But if you would rather not pay yourself the 2 Finney, then simply send yourself an empty message. (Don’t forget to delete the word “Subject” which is automatically populated in the message area). The idea is that whenever you send an empty message you don’t need to pay any fee at all — And once you’ve received the empty message, for subsequent messages from you to you, you’ll only pay the message fee.

If you want you can send a test message to me, perhaps to tell me how much you enjoyed this article… You’ll have to pay my spam-fee, which I’ve set to 200 Szabo — But so long as your message-fee is somewhere around 200 Szabo, I’ll write back to you, so you’ll recoup the couple of cents-worth of ETH.

Regardless of who you decide to send to, sending your first message is easy. Just click on the “compose” button and enter the Ethereum address (or ENS name) of the recipient. To send a message to yourself it might be convenient to copy your address from the account area in the upper-right corner of the screen. If you want to send to me, then just enter my ENS name, ananyalasagna.eth.