Protocol V1.0

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.

A
Alice
PrivKey
ZK Relay
BLIND
B
Bob
PrivKey

Getting Started

1

Connect Wallet

Use Phantom or Solflare to authenticate. We use your wallet only to verify ownership – no transactions or gas fees required.

2

Generate Secret Identity

Create a fresh Ed25519 keypair specifically for chat. This isolates your messaging identity from your financial history.

3

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.

Wallet Pubkey
Authentication Only
Identity Pubkey
Messaging & Encryption

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.

security_specs.json
Key Exchange:X25519 (ECDH)
Signatures:Ed25519 (Solana Standard)
Hashing:SHA-512