Turms Anonymous Message Transport — Step by Step

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

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

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.

When you click the validate button you’ll see what the fees will be (unless the message is empty, in which case you won’t see that the fees are zero except in the MetaMask dialog):

After you type your message (or erase the word “subject” if you’re sending an empty message) click the send button, and then confirm the MetaMask transaction.

Withdrawing Your Fees

Aside from the polite messaging etiquette that it promotes, on the flip side it’s exciting when you see that your message fees are adding up. You can see your accumulated message fees in the account area, at the upper-right corner of the screen. To withdraw your accumulated fees to your Ethereum address, just click the “Withdraw Fees” button, and confirm the transaction in MetaMask.


-Ananya Agarwal



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store