Skip to content
Private, decentralised and open source mail.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.eslintrc.yml Configure 4 spaces for the linter Apr 21, 2019 Updated Apr 29, 2019
compose.js Subject line (#8) May 3, 2019
inbox.js Added support for names from the ArweaveID service. May 14, 2019
login.js Added support for `?to=[addr]` addresses. May 15, 2019
milligram.min.css Added weavemail source Apr 9, 2019
package-lock.json Configure ESLint to check style Apr 21, 2019
permamail.html Subject line (#8) May 3, 2019
view.js Subject line (#8) May 3, 2019


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

You can’t perform that action at this time.