YakApp
The flagship P2P messenger — encrypted chat, voice, video, and file sharing with no central server.
What is YakApp?
YakApp is the primary application built on the yakmesh protocol stack. It is a fully decentralized, post-quantum encrypted messenger that handles text, voice, video, file sharing, and streaming — all peer-to-peer with zero reliance on central servers.
Where other messengers route your data through corporate infrastructure, YakApp connects users directly through the yakmesh mesh network. Every message is encrypted with ML-KEM-768, every identity is verified via DOKO certificates, and every room exists on the mesh — not on someone else's server.
Built on the Full Stack
YakApp is the reference application that exercises every layer of the yakmesh protocol stack:
| Protocol | YakApp Feature |
|---|---|
| ANNEX | Post-quantum encrypted connections between all peers |
| NAKPAK | Onion-routed messages for metadata privacy |
| NAMCHE | Identity gateway — login, verification, key exchange |
| DOKO | User identity certificates, trustable contact cards |
| SHERPA | Finding peers and available rooms on the mesh |
| YURT | Room creation, discovery, and management |
| GUMBA | Role-based access control for rooms and channels |
| KATHA | Rich text messaging — reactions, threads, editing, formatting |
| VANI | Voice and video calls, screen sharing |
| DARSHAN | View-not-copy content streaming for sensitive media |
| STUPA | Distributed file storage for attachments and media |
| KARMA | User reputation and trust scoring |
| DHARMA | Content moderation without central authority |
| MANI | Synchronized timestamps across all messages |
Core Features
Text Chat
- Rich formatting (Markdown, code blocks)
- Message reactions and emoji
- Threaded replies
- Edit and delete with mesh propagation
- Read receipts via MANTRA gossip
Voice & Video
- P2P voice calls (VANI protocol)
- Group video conferencing
- Screen sharing
- Noise cancellation
- Adaptive bitrate for mesh conditions
File Sharing
- Drag-and-drop file transfer
- Chunked via STUPA distributed storage
- Resume interrupted transfers
- View-not-copy mode via DARSHAN
- Automatic thumbnail generation
Rooms
- Public, private, and invite-only rooms
- Decentralized discovery via YURT
- Role-based permissions (GUMBA)
- Sub-channels and topics
- Room federation across mesh regions
Security Model
YakApp is post-quantum secure by default. There are no settings to weaken, no "optional encryption" toggles. Every conversation is protected from day one:
- Key Exchange — ML-KEM-768 (ANNEX) establishes shared secrets resistant to quantum computers
- Message Encryption — AES-256-GCM for every message, derived from the ML-KEM session key
- Identity Verification — DOKO certificates bind public keys to user identities
- Metadata Privacy — NAKPAK onion routing hides who is talking to whom
- Forward Secrecy — Session keys are rotated; compromising one key doesn't expose past messages
- No Server Trust — No central server holds keys, metadata, or message history
Architecture
YakApp runs as a local application connecting directly to the yakmesh mesh:
# YakApp architecture
┌─────────────────────────────────────────────┐
│ YakApp UI │
│ (React + Electron / Browser / Mobile) │
├─────────────────────────────────────────────┤
│ Application Layer │
│ KATHA (chat) │ VANI (calls) │ DARSHAN (AV) │
├─────────────────────────────────────────────┤
│ Room Management │
│ YURT (rooms) │ GUMBA (access control) │
├─────────────────────────────────────────────┤
│ Network Layer │
│ MANDALA (topology) │ MANTRA (gossip) │
│ SHERPA (discovery) │ MANI (time sync) │
├─────────────────────────────────────────────┤
│ Security Layer │
│ ANNEX (encryption) │ NAKPAK (onion route) │
│ DOKO (identity) │ NAMCHE (gateway) │
├─────────────────────────────────────────────┤
│ YAK:// Protocol │ Local yakmesh node │
└─────────────────────────────────────────────┘
Quick Start
import { YakApp } from 'yakapp';
import { YakmeshNode } from 'yakmesh';
// Start a yakmesh node
const node = await YakmeshNode.create({
identity: './my-identity.doko',
meshPort: 4200
});
// Launch YakApp on top of the node
const app = new YakApp(node);
// Join a room
const room = await app.joinRoom('yak://mesh/rooms/general');
// Send a message
await room.send('Hello from YakApp! 🐃');
// Start a voice call
const call = await room.startCall({ video: false });
// Share a file
await room.shareFile('./document.pdf', {
mode: 'darshan' // view-not-copy
});
How YakApp Compares
| Feature | YakApp | Signal | Discord | Matrix |
|---|---|---|---|---|
| Architecture | P2P mesh | Central server | Central server | Federated |
| Post-quantum | ML-KEM-768 | PQXDH (partial) | No | No |
| Metadata privacy | Onion routing | Sealed sender | None | Limited |
| Server required | No | Yes | Yes | Yes (homeserver) |
| Voice/Video | P2P (VANI) | Via relay | Via server | Via Jitsi/relay |
| File sharing | Distributed (STUPA) | Server upload | Server upload | Server upload |
| View-not-copy | DARSHAN | No | No | No |
Extensions
YakApp's core messaging can be extended with additional yakmesh modules:
Version History
| Version | Changes |
|---|---|
| v3.0.0 | YakApp documentation page. Full protocol stack integration documented — ANNEX encryption, KATHA chat, VANI calls, YURT rooms, DARSHAN streaming, STUPA storage, KARMA reputation, DHARMA moderation. |