V vaha_

Case file · № 01 / 16

vChat

Secure messenger — End-to-end encrypted messenger built post-quantum-first: CRYSTALS-Kyber (ML-KEM) key agreement through PQXDH, a Double Ratchet message layer and epoch-based group keys (GMK) with recovery and sender rotation. All of it runs on a single Rust core — KyberSDK — shared by iOS, Android, Tauri desktop and a self-hosted Go backend.

Category
Flagship · post-quantum cryptography
Years
2025 → present
Status
in development
Platforms
iOS · Android · Desktop · Server
vChat — Secure messenger
Screenshot 01 · vChat on iOS — direct chat, group and call in one client.
01

What was built

  • PQXDH key agreement on CRYSTALS-Kyber (ML-KEM) instead of classic X25519
  • Double Ratchet message layer (AEAD + KDF) with per-message keys
  • GMK epoch group keys, sender rotation and recovery from lost state
  • BIP39 mnemonic recovery + argon2id/AES-GCM state escrow
  • Multi-device accounts and panic-mode wipe
  • One Rust core (KyberSDK) behind a C ABI — zero per-platform crypto code
  • Self-hosted Go backend: auth, devices, prekeys, DM & group envelopes, files
02

Layers of the system

KyberSDK — Rust core

RustC ABI / FFIML-KEM
  • CRYSTALS-Kyber (ML-KEM) as the KEM, not an experimental branch
  • PQXDH key agreement resistant to harvest-now-decrypt-later
  • Double Ratchet + GMK epoch keys for groups
  • FIPS-hardening track across the whole core

iOS — Swift / SwiftUI

SwiftSwiftUISPM
  • Modular SPM monorepo: every Core* a framework boundary, every Feature* one surface
  • vChatNSE — notification extension that decrypts E2E push on device
  • Encrypted local store (CoreDatabase), device identity in the Keychain
  • BIP39 account recovery with no server holding keys

Android — Kotlin / Compose

KotlinJetpack ComposeJNI
  • Same Rust core over JNI bindings — crypto is never re-written
  • Jetpack Compose UI, Coroutines + Flow for state
  • Encrypted local store and an FCM pipeline with E2E decryption

Desktop — Tauri 2 (Rust + TypeScript)

RustTauri 2TypeScriptVite
  • Windows, macOS and Linux from one codebase
  • Rust core linked natively — no Chromium underneath
  • Native tray, menus and notifications, small installer

Backend — Go (self-hosted)

GoLokiPrometheusTempoGrafana
  • Services: auth, devices, prekeys, DM & group envelopes, file transfer
  • The server runs on my own infrastructure, not a third-party BaaS
  • Observability: Loki for logs, Prometheus for metrics, Tempo for traces, Grafana for dashboards
03

Technologies

Programming languagesRust, Swift, Kotlin, TypeScript, Go
Frameworks & toolsSwiftUI, Jetpack Compose, Tauri 2, Vite, JNI, C ABI
Infrastructureown servers, Loki, Prometheus, Tempo, Grafana
04

Facts

PlatformsiOS · Android · Desktop · Server
Statusin development
Years2025 → present
CategoryFlagship · post-quantum cryptography

vChat on iOS — direct chat, group and call in one client.

All projects

← Back to the index