ZK Chat Documentation
A decentralized, end-to-end encrypted messaging protocol built on Solana. Prioritizing privacy, anonymity, and zero-knowledge architecture.
Architecture
Client-Side Secure Context
Encryption keys (Ed25519) are generated in your browser. Messages are encrypted locally before ever leaving your device. Your private key never leaves your control.
Zero-Knowledge Relay
The server acts as a blind relay. It sees only encrypted_blobs and cannot read message content. It deletes all data from memory upon restart.
Getting Started
Connect Wallet
Use Phantom or Solflare to authenticate. We use your wallet only to verify ownership – no transactions or gas fees required.
Generate Secret Identity
Create a fresh Ed25519 keypair specifically for chat. This isolates your messaging identity from your financial history.
Back Up Secret Key
Important: Save your Secret Key (Base58 string). If you clear your browser cache, this is the only way to recover your account.
Secret Identity
Your wallet address is public. Your chat identity shouldn't be. We separate the two using a secondary keypair derived just for messaging.
Power Features
Private Groups
Invite-only channels where every message is encrypted with a shared ephemeral key derived from member keys.
Public Channels
Open forums visible to anyone. Great for community building. Authenticated but unencrypted.
Direct Messages
1-on-1 encrypted chats using Diffie-Hellman key exchange for perfect forward secrecy.