KaChat

Chat, post, pay and play on the Kaspa BlockDAG
KaChat is a family of apps built on Kaspa. KaChat Desktop does it all in one place. On your phone, KaChat, KaPost, KaPay and KaPlay each do one thing well.
No accounts, no personal information: your public key is your identity.
KaChat is on the App Store and Google Play. KaPost and KaPay are in beta on TestFlight for iPhone, and KaPlay is coming soon. KaChat Desktop runs in any modern browser on Mac, Windows, Linux, iPhone, iPad and Android.
The KaChat apps
One desktop app that does everything, and four phone apps that each do one thing. They all share the same Kaspa network, and one seed phrase works in every one.

KaChat Desktop
The do-it-all app
Everything the other four apps do, together in one app on your computer, in the browser.
- Chats, KaPost and your wallet in one place
- .kachat names, chess and stats
- Mac, Windows and Linux

KaChat
Private messaging
Encrypted chats carried on Kaspa, kept simple.
- 1:1 and group chats
- Voice messages and calls
- Send KAS in a chat

KaPost
Social feed
A social feed and public chat rooms on Kaspa, signed by your key.
- Post, reply and repost
- Polls, follows and tips
- Public chat rooms

KaPay
Wallet
Your Kaspa wallet, with cold storage and .kachat names.
- Send, receive and request KAS
- Portfolio and Cold Storage
- Buy and sell .kachat names

KaPlay
Games
Chess on Kaspa, where every move is on chain.
- 1v1 games and tournaments
- Practise against bots
- Leaderboards
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.
Inside KaChat: encrypted and on-chain
A full messenger built on Kaspa, in the KaChat app and in KaChat Desktop. 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.
Prices and rules →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.
Join the community
Follow along, get support, test new features, and help shape KaChat.