# E2EE operations

The relay sees session/participant routing identifiers, envelope kind, size, sequence,
timestamps, and ciphertext. It never decrypts or logs `ct`, nonce, credentials, or the
relay secret. Messages exist only in recipient Redis inboxes (approximately 500 entries,
24 hours); `resync_required` means bounded loss and PostgreSQL cannot recover it.

Clients persist identity keys, credentials, session X25519 keys, sender keys and
cursors locally across restarts (A15); restarting a client does not rotate its keys,
and V1 promises no periodic key rotation or forward secrecy (`e2ee-v1.md`).
AES-256-GCM nonces are random 96-bit values.

The viewer feature probes WebCrypto and degrades without breaking controls. Supported
baseline: Chrome 133+, Safari 17+, Firefox 130+, and Node.js 22 or newer for interoperability.

