KaChat

Secure messaging on Kaspa BlockDAG
Privacy-focused and encrypted, peer-to-peer messaging, built on Kaspa infrastructure.
No accounts, no personal information: your public key is your identity.
The KaChat Protocol
KaChat is an open protocol, not just an app. Messages are encrypted on your device and carried inside Kaspa transactions, so any client built on the protocol interoperates: no lock-in, no central server. An indexer only helps find messages on-chain, and it only ever sees encrypted data.
How a message travels
Connect
Add a contact by their wallet address. KaChat derives private conversation routing from a shared key agreement, with no usernames and no sign-up. There's no handshake to wait for: just send a message, and it shows up in their Message Requests to accept or decline.
Encrypt
Each message is sealed on your device with ECDH (secp256k1), HKDF-SHA256 and ChaCha20-Poly1305 before it ever leaves.
Broadcast
The encrypted payload rides inside a Kaspa transaction, under the kchat:1: protocol, so it lives on the public Kaspa BlockDAG.
Decrypt
The recipient's app fetches the relevant transactions and decrypts them locally with their private key. Only they can read it.
# Everything rides on-chain under one protocol namespace
kchat:1:dm:<tag>:<alias>:<encrypted> first message to someone (a Message Request)
kchat:1:comm:<alias>:<encrypted> encrypted message
kchat:1:pay:<encrypted> KAS payment with memo
Your first message to someone carries an inbox tag made from their address, so their app can find it and show it in Message Requests. Every message after that drops the tag, so the ongoing conversation can't be linked to them.
Older clients wrote ciph_msg:1: and started chats with a handshake; every KaChat app still reads both.
Everything, encrypted and on-chain
A full messenger built on Kaspa. Your keys, your messages, your money.
End-to-end encrypted
secp256k1 ECDH key agreement, HKDF-SHA256 and ChaCha20-Poly1305. Content is decryptable only by the recipient.

Send KAS in a chat
Move Kaspa to anyone in the conversation, with an optional encrypted memo. No leaving the app, no middleman.
Voice messages
Record and send encrypted voice notes, carried on-chain like everything else.
.kachat domain names
Reach people by a human-readable .kachat name instead of a long wallet address.
Multiple accounts
Run several wallets and identities on one device and switch between them instantly.
Your own backups
Optionally back up your history to your own Nextcloud. It stays yours, never a KaChat server.
More than messaging
KaChat also brings a social feed, chess and on-chain names to Kaspa, all signed by your own key.
KaPosts
A social feed that lives on Kaspa. Every post is signed by your key, so no one can post as you or quietly change what you wrote.
- Post, reply, quote and repost
- Polls, likes and follows
- Tip any post in KAS
Chess Online
Play chess with anyone on the network, right inside KaChat. Games and tournaments run on Kaspa, so results are public and can't be edited.
- Challenge a contact or join an open game
- Enter tournaments
- A public leaderboard
.kachat names
Claim a name like you.kachat and let people reach you by it. Names are held by a contract on Kaspa, not by a company.
- Renew, transfer, or sell on the marketplace
- Make offers on names you want
Your profile picture, banner and bio come from social accounts you already have, like X, YouTube or Telegram, plus a Linktree for links. You pick them and they're stamped to your Kaspa address, not to the name, so selling or losing a name never changes your profile.
Live on testnet · coming to mainnetGet KaChat
On your phone, your desktop, or straight in the browser. Same encrypted network everywhere.
iPhone & iPad
Native app on the App Store. Or join the TestFlight beta for early features.
Download on the App Store Join the iPhone betaAndroid
Native app on Google Play. Or grab the latest beta APK from GitHub.
Get it on Google Play Beta APK on GitHubDesktop & Web
Run KaChat right in your browser, nothing to install. Same encrypted network.
Open the web app Desktop on GitHubJoin the community
Follow along, get support, test new features, and help shape KaChat.