Whisper private chat
Who this is for: people who need a time-limited, QR-started E2E room that should not become a permanent Buzzio social-graph edge.
Not Whisper Questions (
whisper.buzzio.dev) — that product stores owner-readable answers.
What it is (Hardened Whisper v3)
Meet → talk E2E over a Tor relay → expire → leave no durable sealed chat archive for that session on Buzzio servers after cleanup.
Current product (2026):
- New sessions are v3-only — Firebase Whisper create is retired.
- Join material is an offline QR payload (not a classic deep-link mint).
- Transport uses the Whisper relay / onion hops (keep the app open on Android while the session runs).
- Legacy v1/v2 rooms may still join until the documented sunset (2026-12-31 UTC), then only v3.
How to use
- Create a Hardened Whisper session; pick a lifetime preset (~1 hour up to ~7 days).
- Show / share the QR join material (no Firebase mint for new rooms).
- Participants scan and join within limits; chat E2E via the relay.
- In a member’s chat, swipe up for once-view text (that lane only — not every joiner). Photos/videos can still use View Once.
- When the session expires or closes, the live room ends by design.
Free: 1 active Whisper at a time. Premium: 200 active — Premium and quotas.
Privacy strip
| Property | Status |
|---|---|
| Content E2EE | Yes — session keys on devices |
| Relay | Tor / onion hops (v3) — not Firebase RTDB chat |
| Zero durable chat metadata | Yes after expiry + cleanup |
| Typical lifetime | ~1h–168h |
| Scan / join limits | e.g. up to ~50 |
| FCM | Not the primary transport for v3 rooms |
Verify: Verify zero metadata. Internal specs: docs/WHISPER_V3_*.md.
Limits
- Sessions are temporary — “chat gone” after expiry is expected.
- Legacy Firebase Whisper UI may still appear for old rooms until sunset; do not create new legacy rooms.
Troubleshooting
Cannot create / join / expired — Troubleshooting. Ensure relay dart-defines are set for production v3 builds (docs/DART_DEFINES_AND_STAGING.md).