// select a contact or group
███╗ ██╗██╗██╗██╗ ██╗ ████╗██╗ ██╗ █████╗ ████████╗ ████╗ ██║██║██║╚██╗██╔╝ ██╔══╝██║ ██║██╔══██╗╚══██╔══╝ ██╔██╗ ██║██║██║ ╚███╔╝ ██║ ███████║███████║ ██║ ██║╚██╗██║██║██║ ██╔██╗ ██║ ██╔══██║██╔══██║ ██║ ██║ ╚████║██║██║██╔╝ ██╗ ╚████╗██║ ██║██║ ██║ ██║ ╚═╝ ╚═══╝╚═╝╚═╝╚═╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
blind relay · zero-knowledge
pick a contact or group on the left, or create a new one to begin an encrypted session.
paste a 64-character fingerprint to find someone.
ask them to copy theirs from their account panel and send it to you over a trusted channel.
deletes your account, all messages you've sent, and removes you from all groups. cannot be undone.
node -e "
const fs=require('fs'),crypto=require('crypto');
const pub=crypto.createPublicKey({
key:Buffer.from(fs.readFileSync('signing-key.pub','utf8').trim(),'hex'),
format:'der',type:'spki'});
const ok=crypto.verify(null,
fs.readFileSync('hashes.txt'),pub,
Buffer.from(fs.readFileSync('hashes.txt.sig','utf8').trim(),'hex'));
console.log(ok?'✓ valid':'✗ INVALID');"