Local key vault
Your recovery key is encrypted with PBKDF2-SHA-256 (310,000 iterations) and AES-256-GCM. The vault password is never stored.
Here's exactly what JawaChat protects today, what it doesn't yet, and the work still needed before high-risk use.
Your recovery key is encrypted with PBKDF2-SHA-256 (310,000 iterations) and AES-256-GCM. The vault password is never stored.
Messages, reactions, edits, receipts and call signaling use NIP-17 / NIP-59 / NIP-44. Group messages are wrapped separately for each member.
Pairwise safety codes, verified contacts and key pinning help you spot unexpected identity changes.
History, contacts, groups, settings and the outbox are encrypted with HKDF-derived AES-GCM keys and authenticated data.
Photos are re-encoded in the browser to strip EXIF/GPS. Notification previews are off by default. Relay-only calls can hide your IP.
Signed challenge authentication, fresh timestamps, payload caps, rate limits, origin allow-lists and idle cleanup.
| Party | Can see | Cannot see |
|---|---|---|
| Relay operators | Encrypted gift wraps, recipient key tags, timing, IP address | Message content, sender identity inside the wrap |
| Network observers | That you connect to relays and STUN/TURN servers | Message content (TLS + end-to-end encryption) |
| Call peers | Your IP address (unless relay-only TURN is on) | Your other conversations |
| Anyone with your unlocked device | Everything while you're signed in | Your vault password |
| JawaChat project | Nothing — there is no JawaChat account server | Your identity, contacts or messages |
JawaChat is an active prototype. Don't rely on it for emergency calling, guaranteed anonymity or life-safety communication.
Please email jawachat@yahoo.com with the details and give us time to fix it before sharing them publicly.