Privacy Policy
Effective Date: October 31, 2026
Project Nature: Solo Indie Developer Project • Proprietary Public Beta
Sphurja is an independent messaging project built by a solo developer who believes digital conversations should be private by mathematical default. Because of how the system is engineered, the developer cannot inspect your messages, view your media, or listen to your calls.
The Independent Developer Commitment
- Zero Plaintext Storage: Messages and media are encrypted on your device using the Signal Protocol (Double Ratchet) before leaving your hardware.
- Blind Mailbox Spool: Catch-up messages are stored in edge Cloudflare D1 as sealed ciphertext envelopes and auto-purged within 30 days.
- Experimental Virtual HSM: PIN recovery runs via RFC 9807 OPAQUE. The developer never receives or stores your plaintext PIN. Entering 10 incorrect attempts triggers permanent vault auto-shredding.
- No Monetization of Personal Data: No ads, no third-party trackers, no analytics brokers, and no data selling.
1. What Information Is Handled
A. Account Information
- Phone Number: Used solely will be used to authenticate your identity via SMS code and stop automated bot abuse but we currently lack this feature.
- Profile: Your chosen @username, optional display name, and avatar image.
- Public Cryptographic Keys: Identity public keys, signed pre-keys, one-time pre-keys, and post-quantum Kyber keys. These are public cryptographic parameters required for peers to initiate ratchet sessions.
B. Encrypted Communications
- Encrypted Payloads: Content is encrypted locally with ephemeral symmetric keys (Kmsg). The developer sees only opaque binary ciphertexts.
- Dual Mailbox Envelopes: Sealed envelopes stored ephemerally in edge Cloudflare D1 for catch-up synchronization. The server cannot decrypt either copy.
- Encrypted Media: Media files are client-side encrypted before uploading to Cloudflare R2. Without your device's key, media blobs cannot be viewed.
C. Device & Connection Metadata
- Linked Companion Devices: Device IDs (1 to 5), operating system, and user-agent strings for managing authorized sessions and enabling remote revocation.
- Transient Edge Logs: Ephemeral IP addresses and network timestamps processed in volatile memory (Cloudflare Workers / Upstash Redis) strictly for rate-limiting, DDoS prevention, and routing WebSocket events.
2. Data We NEVER Collect or Store
- Your message plaintexts, voice recordings, or video frames.
- Your private cryptographic identity keys or Double Ratchet state keys.
- Your plaintext Virtual HSM recovery PIN or 64-digit Master Recovery Key.
- Your contacts or device address books.
- Commercial advertising trackers or behavioral analytics profiles.
3. Data Retention & Cryptographic Shredding
| Data Domain | Storage Location | Retention Window | Deletion / Shredding Invariant |
|---|---|---|---|
| Blind Mailbox Spool | Cloudflare D1 (SQLite) | Up to 30 Days | Automated 30-Day TTL Pruning Cron (mailboxCleanup.ts) |
| Virtual HSM PIN Vault | Durable Object Storage | Until deleted or shredded | Permanent Auto-Shred on 10 failed attempts (shredOpaqueVault) |
| Purged / Unsent Chats | D1 & R2 Storage | Immediate (<5ms hot path) | Synchronous D1 delete + Distributed Tombstone Barrier |
| Presence & WebSockets | Upstash Redis | Transient (Seconds/Minutes) | Automatic key expiration and disconnect cleanup |
4. Third-Party Infrastructure
As a solo developer, I leverage established serverless edge infrastructure providers bound by strict confidentiality terms:
- Cloudflare Inc.: Edge Workers, Cloudflare D1 (encrypted database), Cloudflare Queues, and Cloudflare R2 object storage.
- Neon Inc.: Serverless PostgreSQL for user identity metadata and device records.
- Upstash Inc.: Serverless Redis for real-time presence caching and connection rate-limiting.
- Apple APNs / Google Firebase (FCM): Encrypted wake-up push notifications alerting offline devices to fetch sealed mailbox rows.
5. Account Erasure & User Rights
You have the complete right to erase your identity:
- Account Deletion: You can permanently wipe your account at any time from within the app: Settings > Account > Delete Account. This immediately removes your phone number, device links, pre-keys, shreds your Virtual HSM vault, and purges all pending mailbox rows.
- Data Portability: Because of our zero-knowledge architecture, your chat data resides on your own phone. You can export your unencrypted chats locally from your device settings at any time.
6. Government Inquiries & Subpoenas
Because all communications are end-to-end encrypted with keys held exclusively by users, the developer is mathematically unable to provide plaintext message content or call streams to any government, law enforcement agency, or third party under any legal process.
7. Contact the Maintainer
If you have any questions or concerns about privacy practices or this independent project, contact the developer at:
Developer Contact: [email protected]
General Inquiries: [email protected]