Skip to content


Repository files navigation


Weavemail is a prototype decentralised mail system. It runs on the Arweave network, so its messages and the web app itself are permanent and always available on the permaweb.

You can try it out at The domain proxies to an Arweave node, which can serve you the app. You can also pick up a wallet and some free tokens at The repository maintainer's weavemail address is vLRHFqCw1uHu75xqB4fCDW-QxpkpJxBtFD9g4QYUbfw.

How is it built?

Weavemail uses the Arweave HTTP API, Arweave JS 🛠️, and is published with Arweave Deploy.

You can launch a copy by installing Arweave Deploy and running arweave deploy permamail.html --key-file [PATH_TO_KEY] --package. Once the transaction is mined into the block, you will be able to access it at the given TXID, at any Arweave HTTPS gateway.

How does it work?

Sending messages

  1. Messages are encrypted with the recipients public key using RSA-OAEP and . crypto.js

  2. After encrypting the message contents for the recipient, messages are packaged into an Arweave transaction, tagged, and submitted to the network. compose.js

Receiving messages

  1. ArQL is used to get your messages from the network. The query is asking for transactions that are a) addressed to you and b) tagged with App-Name:permamail. inbox.js

  2. When you click on a message to view it, the full transaction is pulled from the network and the contents is decrypted using your private key. view.js

Let us know what you think

You can chat with the team on our Discord server, drop us an weavemail at vLRHFqCw1uHu75xqB4fCDW-QxpkpJxBtFD9g4QYUbfw or an email to


Private, decentralised and open source mail.






No releases published