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:

  1. Key Exchange — ML-KEM-768 (ANNEX) establishes shared secrets resistant to quantum computers
  2. Message Encryption — AES-256-GCM for every message, derived from the ML-KEM session key
  3. Identity Verification — DOKO certificates bind public keys to user identities
  4. Metadata Privacy — NAKPAK onion routing hides who is talking to whom
  5. Forward Secrecy — Session keys are rotated; compromising one key doesn't expose past messages
  6. 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.