KrayChat uses your Bitcoin Taproot keys for zero-knowledge encrypted messaging. DMs, Groups, and AI Agent channels β all E2E encrypted. No servers store your messages. Just pure cryptography.
No trust required. Verify everything.
Your Bitcoin address IS your chat identity. No phone numbers, no emails, no accounts. Just your Taproot key.
Messages are encrypted on your device before leaving. Only the recipient can decrypt. Even we can't read them.
Messages are stored only on your device. Delete them and they're gone forever. No cloud backups.
We don't track who talks to whom, when, or how often. The relay only routes encrypted packets.
Open the app, unlock your wallet, start chatting. No sign-ups, no verification, no waiting. On the browser extension, your password is only ever typed inside the extension popup β never on a web page.
Built on standard Bitcoin cryptography (secp256k1, ECDH, AES-256-GCM). Auditable and transparent.
Command your AI agent through a self-channel secured by Bitcoin signatures. Two auth modes: direct signing (pure crypto) or revocable bot tokens (zero crypto on the agent).
Create encrypted group chats. Each message is individually encrypted for each member. Admins manage members with signed operations.
Simple for users, bulletproof under the hood.
Unlock your wallet to activate the chat session β on the extension this happens in the KrayWallet popup (your password never touches the page); on mobile, inside the app. Your private key is derived locally (never leaves your device), and your public key becomes your Chat ID.
Give your Chat ID to anyone who wants to message you. It's safe to share - it's a public key, like a Bitcoin address.
Enter someone's Bitcoin address. The system automatically finds their Chat ID if they're registered on the network.
Using ECDH key exchange, a shared secret is created. Messages are encrypted with AES-256-GCM before sending.
The recipient uses their private key + your public key to derive the same shared secret and decrypt the message.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β KRAYCHAT ENCRYPTION FLOW β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ YOUR DEVICE RELAY SERVER THEIR DEVICE ββββββββββββ ββββββββββββ βββββββββββββ βββββββββββββββ βββββββββββββββ β Your Privateβ βTheir Privateβ β Key β β Key β ββββββββ¬βββββββ ββββββββ¬βββββββ β β β + Their Public Key Your Public Key + β β βΌ βΌ βββββββββββββββ βββββββββββββββ β ECDH β β ECDH β β Key Exchangeβ β Key Exchangeβ ββββββββ¬βββββββ ββββββββ¬βββββββ β β βΌ βΌ βββββββββββββββ βββββββββββββββ β SAME β β SAME β β Shared β β Shared β β Secret β β Secret β ββββββββ¬βββββββ ββββββββ¬βββββββ β β Message + Secret Ciphertext + Secret β β βΌ βΌ βββββββββββββββ βββββββββββββββ βββββββββββββββ β AES-256-GCM ββββββββββΆβ Only sees βββββββββββββββΆβ AES-256-GCM β β Encrypt β β ciphertext β β Decrypt β βββββββββββββββ β (garbage) β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β Server NEVER sees: β β β’ Your private key β β β’ The shared secret β β β’ The message content β β β β β Server ONLY sees: β β β’ Encrypted blob (ciphertext) β β β’ Public keys (to route messages) β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The most secure way to command an AI agent. Two auth modes. Zero compromise.
KrayBot opens a channel where your address sends to your own address (from === to). This creates a cryptographically sealed private channel that only your private key can access.
When you send a command, your KrayWallet encrypts + signs the message with your Bitcoin private key. This proves you are the owner. No one else can impersonate you.
The relay detects from === to, recognizes it as a self-channel message, and routes it to your bot device. Token-based bots receive a plaintext bot_command; direct-signing bots receive the encrypted payload.
Token-based bots send a plaintext bot_reply (relay wraps and delivers). Direct-signing bots respond through the encrypted self-channel. Either way, the reply appears in your KrayBot tab.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β MODE A: TOKEN-BASED AUTH (Recommended for Platforms) β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ YOUR DEVICE RELAY SERVER YOUR AI AGENT (Extension/Mobile) (kray.space) (Vitruvia/OpenClaw) βββββββββββββββββ ββββββββββββ ββββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β Your Wallet β β Bot Token β β Private Key β β (kbt_...) β ββββββββ¬ββββββββ ββββββββ¬ββββββββ β β β 1. Owner signs challenge 3. bot_auth(token) β β relay issues kbt_ token β registered as β β token goes to agent bot device β β β 2. Encrypt + Send 4. Receive bot_command β (ECDH self-key) (plaintext text) β β βΌ βΌ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β Send message ββββββββββΆβ from === to ββββββββββββββΆβ Receive as β β from: bc1p.. β text + β Route as β bot_commandβ { text: "β¦" }β β to: bc1p.. β payload β bot_command β (plaintext)β Process AI β ββββββββββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ β β β ββββββββββββββββ β ββββββββ bot_reply ββββββββ β β (plaintext) β β ββββββββββββββββ β βΌ ββββββββββββββββ β Route to β β owner devicesβ ββββββββ¬ββββββββ β βΌ You see the reply in KrayBot tab βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β TOKEN-BASED ADVANTAGES: β β β β β’ Agent needs ZERO crypto libraries (only WebSocket) β β β’ Private key NEVER leaves your KrayWallet β β β’ Token is revocable by owner at any time β β β’ Any platform (Vitruvia, OpenClaw, etc) can integrate easily β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β MODE B: DIRECT SIGNING (Maximum Security) β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ YOUR DEVICE RELAY SERVER YOUR AI AGENT (Extension/Mobile) (kray.space) (Self-hosted node) βββββββββββββββββ ββββββββββββ ββββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β Your Wallet β β Same Privateβ β Private Key β β Key β ββββββββ¬ββββββββ ββββββββ¬ββββββββ β β β Sign + Encrypt bot_register + β (ECDH self-key) Schnorr signature β β βΌ βΌ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β Send message ββββββββββΆβ from === to ββββββββββββββΆβ Decrypt ECDH β β from: bc1p.. β payload β Route to bot β encrypted β Process AI β β to: bc1p.. β(E2E enc)β devices β payload β Send reply β ββββββββββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ β β βββββββββββββββββββββββββββββββ βΌ Fully E2E encrypted Relay sees NOTHING βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β DIRECT SIGNING ADVANTAGES: β β β β β’ Relay CANNOT read your commands or responses β β β’ True E2E β no intermediary can see content β β β’ Ideal for self-hosted nodes (Umbrel, etc) β β β’ Maximum sovereignty: bot signs with Schnorr BIP-340 β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
What we protect, and what we never touch.
How we compare to other messaging apps.
| Feature | KrayChat | Telegram | Signal | |
|---|---|---|---|---|
| End-to-End Encryption | β Always | β Default | β Optional | β Always |
| No Phone Number Required | β | β | β | β |
| No Account Registration | β | β | β | β |
| Messages Stored Locally Only | β | β | β | β |
| No Metadata Collection | β | β | β | β |
| Bitcoin-Native Identity | β | β | β | β |
| Open Source Protocol | β | β | Partial | β |
Start messaging with zero surveillance.
π Launch KrayChat