KaChat

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

1

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.

2

Encrypt

Each message is sealed on your device with ECDH (secp256k1), HKDF-SHA256 and ChaCha20-Poly1305 before it ever leaves.

3

Broadcast

The encrypted payload rides inside a Kaspa transaction, under the kchat:1: protocol, so it lives on the public Kaspa BlockDAG.

4

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.

Kaspa

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.