AlgoChat · TestNet
Encrypted messages,
on a public chain.
This page generates a throwaway Algorand TestNet key, encrypts what you type on your device, and posts it as a transaction note. Two people can hold a conversation whose ciphertext anyone can see and nobody else can read.
Read this first
This is a protocol demo, not secure messaging. The key lives in this browser, so anything that can run script on this page can read it. There are no verified contacts and no safety numbers. For real messaging, use Raven, which holds keys properly.
TestNet only. The key generated here is not your wallet, it is never asked for, and the ALGO it uses is free and worthless. Your connected wallet is not read and will not be prompted.
What is not protected: addresses and timing are public on chain, traffic analysis is possible, and messages cannot be deleted. What is protected is the content, which only the two keys involved can read.
Messages cap at 882 bytes, settle in about 4.5 seconds, and cost a fraction of a TestNet ALGO. A new account needs 0.1 ALGO before it can do anything. The protocol is documented at /algochat/docs/.
The demo
This demo needs JavaScript. Everything above describes what it does.
How a message becomes a transaction.
Your text is encrypted on this device with X25519 and ChaCha20-Poly1305 into an AlgoChat envelope, then posted as a 0-amount TestNet payment with the envelope in the note field. The recipient reads the note from the indexer and decrypts it with their key. The key used for encryption is derived from the account seed, which is why this demo generates its own key instead of using a connected wallet: wallets never expose a seed.