🥥 Coconut Wireless — Security

How Clarity protects calls, chat, and (roadmap) groups. No phone number required. Private chat keys stay on your device.

Security draft v1.1 · 2026-07-27 DTLS-SRTP · Double Ratchet · MLS

DTLS-SRTP · calls

After signaling, DTLS exchanges keys peer-to-peer; SRTP encrypts voice & video packets.

Double Ratchet · chat

Keys rotate with each message so one leak does not open past or future chat.

MLS · groups

Efficient multi-party key management for group sessions — architecture target for group scale.

Positioning

Signal-class privacy for the open web — no phone number, Linux-friendly, no big-tech owner. We claim: open client path, ciphertext chat with Double Ratchet (DR-v3), verifiable Safety Numbers, and WebRTC calls protected by DTLS-SRTP. We do not claim “more secure than Signal” until full sealed-sender / MLS group productization and an independent audit ship.

Open Coconut Mesh Call Tech Support

1. What the server can and cannot see

DataServerNotes
Username / display nameYesAccount directory
PasswordHashed onlyNever stored plaintext
Chat message body (E2E on)Ciphertext onlycipher + iv; plaintext stripped when present
Your private keyNeverStays in browser storage for that username
Your public keyYesSo peers can encrypt to you
Who messaged whom / whenMetadataDelivery requires routing; minimization is ongoing
Call signaling (invite, SDP, ICE)Yes (relay)Needed to connect; not the media payload
Voice/video media bytesNot by designWebRTC P2P or TURN with DTLS-SRTP

2. Chat encryption — Double Ratchet

For true end-to-end encryption with no middleman access to chat bodies, Coconut uses a Double Ratchet (DR-v3): the algorithm continuously rotates keys with each message, so even if one key is compromised, past and future messages stay protected (forward secrecy + post-compromise recovery). Older peers can fall back to CHAIN-v2 or v1 ECDH.

Algorithm stack

What this gives you

Roadmap

X25519 migration, sealed sender / metadata minimization, post-quantum hybrid (X25519 + Kyber), independent audit.

3. Safety Numbers (shipping)

Open a chat → tap 🔐. Coconut builds a 60-digit Safety Number from both identity public keys (order-independent).

SHA-256("coconut-safety-v1|" + sortedCanonKeyA + "|" + sortedCanonKeyB) → 60 digits

4. Voice & video — DTLS-SRTP

DTLS-SRTP secures the media stream between your two devices after the signaling handshake. It uses DTLS to exchange keys directly peer-to-peer, then SRTP encrypts the actual voice and video packets with those keys. Coconut and Mesh Call use standard browser WebRTC, so this media encryption is on for live A/V.

5. Group sessions — MLS

MLS (Messaging Layer Security) takes this further for group calls by efficiently managing keys across multiple participants (join/leave, epoch rotation, scalable group keying).

Summary: DTLS-SRTP locks call media after handshake · Double Ratchet rotates chat keys every message · MLS is the group-scale keying model for multi-person sessions.

6. Authentication

7. How to verify a contact

  1. Both open Coconut and the same chat
  2. Each taps 🔐 Safety Number
  3. Compare digits (or scan QR) in person or via a second channel
  4. If they match → Mark verified
  5. If they differ → stop sending sensitive data and investigate

8. Audit & limitations (honest)

9. Related links

Coconut messenger Mesh Call Log in Tech Support