Chat System
KayakNet Chat provides end-to-end encrypted messaging with full privacy protection.
Overview
End-to-End Encrypted - Messages only readable by participants
Room-Based - Public and private chat rooms
Direct Messages - Private 1-on-1 conversations
Media Support - Share images and files
Persistent History - Messages saved locally
Real-Time - Instant message delivery via PubSub
Accessing Chat
Start your KayakNet node with
--proxyConfigure browser proxy
Navigate to
http://chat.kyk
Or access via http://home.kyk → Chat tab
Features
Public Rooms
Join rooms to chat with multiple people:
Creating a Room:
Click "NEW ROOM"
Enter room name
Optionally set as private
Share the room name with others
Joining a Room:
Enter room name in search
Click "JOIN"
Start chatting
Direct Messages (DMs)
Private conversations between two users:
Click on a user's name
Select "Send Direct Message"
Or enter their Node ID manually
Messages are E2E encrypted
Media Sharing
Share images in chat:
Click the image icon 📷
Select file from device
Image is encrypted and sent
Recipients see inline preview
User Presence
See who's online:
🟢 Online - Active in last 5 minutes
🟡 Away - Inactive
⚫ Offline - Not connected
Message Status
✓ Sent - Message left your node
✓✓ Delivered - Reached recipient's node
👁 Read - Recipient opened message
Encryption
Room Messages
Room messages use:
Room Key - Symmetric key shared by members
ChaCha20-Poly1305 - AEAD encryption
Gossip Protocol - Distributed delivery
Direct Messages
DMs use:
X25519 - Key exchange with recipient
ChaCha20-Poly1305 - Encrypt message
Ed25519 - Sign for authenticity
Key Rotation
Keys are rotated:
Room keys: When members change
DM keys: Per message (perfect forward secrecy)
Commands
/join #room
Join a room
/leave
Leave current room
/nick name
Set display name
/dm user
Start DM with user
/members
List room members
/clear
Clear local history
/help
Show all commands
Privacy Features
What's Protected
✅ Message content - E2E encrypted ✅ Sender identity - Pseudonymous ✅ Recipient identity - Hidden by onion routing ✅ Message timing - Obfuscated ✅ Chat history - Stored locally only
What's Visible
⚠️ Room names - Public rooms are discoverable ⚠️ Online status - Can be disabled ⚠️ Message metadata - Size (padded), timestamp (fuzzy)
Settings
Access settings via gear icon:
Display Name
Your visible name
Show Online Status
Toggle presence visibility
Read Receipts
Send read confirmations
Message Notifications
Desktop notifications
Auto-Delete
Delete messages after X days
Technical Details
Message Format
Delivery
Messages are delivered via:
Direct - If recipient is a peer
DHT - Store and forward
Gossip - Flood to room members
Storage
Chat history is stored in:
Troubleshooting
Messages Not Sending
Check node is connected (peer count > 0)
Verify recipient is online or using DHT fallback
Try restarting node
Can't Join Room
Room name is case-sensitive
Room may be private
Network connectivity issue
History Not Loading
Check data directory permissions
May be syncing from network
Try clearing cache
Best Practices
Use unique names - Avoid impersonation
Verify contacts - Check Node IDs match
Clear history - When done with sensitive chats
Private rooms - For confidential discussions
No personal info - Keep anonymity intact
Last updated

