How Privacy Works
Understanding UnboundChat's privacy-first design
Local-First
Conversation history is stored on-device by default
End-to-End Encrypted
Only devices initialized with your key material can read it
Client-Side Keys
Sync content is encrypted before upload
Local-First Architecture
Your conversation history lives on your device by default.
- •Local database stored in your device's protected app storage
- •Selected content leaves your device only for features that need a network service, such as AI requests, sync, remote backups, connectors, diagnostics, or support
- •Stored conversations and settings remain available offline; remote AI and connected features require their services
- •Local deletion controls are available in the app; operating system backup and uninstall behavior varies by platform
Your API Keys Are Protected
Your API keys are stored using your device's built-in security features.
Uses Android's protected keystore-backed storage, with the exact hardware protection determined by the device
Uses the operating system's encrypted credential storage
- •The app sends readable keys to the provider endpoint that uses them and does not automatically add them to support or diagnostic payloads
- •If you enable sync, keys are encrypted with your personal encryption key before upload
Strong Encryption
We use industry-standard, battle-tested encryption.
- •Authenticated encryption — Data integrity verified, not just confidentiality
- •Strong key derivation — Your passphrase is processed with computationally intensive algorithms to resist brute-force attacks
- •Unique keys per user — Your encryption key is mathematically derived from your passphrase
- •Random initialization — Each encryption operation uses fresh random values
Cloud Sync Security
Optional FeatureIf you choose to sync, your data is encrypted before it ever leaves your device.
- •End-to-end encryption: data is encrypted on YOUR device before upload
- •Synced content fields are uploaded as ciphertext; Supabase separately sees account and operational metadata
- •Email, Google, and Apple accounts use a separate sync passphrase; recovery-phrase accounts derive sync-key inputs from the phrase
- •Database-level isolation ensures users can only access their own encrypted data
- •Account deletion uses a durable server-side cleanup flow and is reported complete only after the service confirms removal
How It Works
Your Device
Decryption material → Key → Encrypt
Encrypted Blob
Unreadable without your key
Our Servers
Sync content arrives encrypted
Anonymous Accounts
You don't need to give us your email to use cloud sync.
- •Create an account using a 12-word recovery phrase (same standard used by cryptocurrency wallets)
- •Your phrase is processed entirely on your device to create account credentials and sync-key inputs
- •No email, phone number, or personal information required
- •Same phrase = same account on any device (for recovery)
- •Account setup and recovery do not transmit the phrase; only derived credentials are used with Supabase
What Happens When You Chat with AI
The route depends on the AI connection you choose.
- •Bring-your-own-key requests go from the app to providers such as OpenRouter, OpenAI, Google, or your configured endpoint
- •On supported non-Apple builds, limited free-tier requests pass through an UnboundChat Supabase Edge Function before OpenRouter
- •The selected prompt, attachments, and context are processed by the route used for that request; local history is not uploaded merely because it exists on your device
- •Zero Data Retention mode: Filter to endpoints represented by OpenRouter as supporting its Zero Data Retention policy
Privacy-Respecting Diagnostics
Our logging is designed to help troubleshoot without compromising your privacy.
What we log
- • App startup
- • Feature usage patterns
- • Errors for debugging
What we NEVER log
- • Your conversations
- • API keys
- • Raw exception messages or file contents
Automated telemetry excludes conversation text. Content or a diagnostic tail that you explicitly attach to a support report is sent as part of that report.
- •One telemetry setting controls future Supabase analytics and Sentry crash-report sends
- •Remote analytics can be completely turned off in settings
- •A random installation identifier is used instead of an account ID; it can correlate diagnostics and free-tier quota activity for that installation
What Client-Side Encryption Protects
The cloud sync service stores these items only in encrypted or locally derived form:
- ✗Synced conversation content and optional attachments
- ✗Synced API-key material (encrypted before upload)
- ✗Your recovery phrase (credentials are derived locally)
- ✗Your raw sync passphrase (derived keys are stored in protected device storage)
- ✗Decrypted versions of your synced content
You're In Control
Use in-app controls to delete local data or request cloud-account deletion.
- •Delete individual conversations or clear everything locally
- •Request cloud-data and account deletion from settings
- •The app waits for durable server confirmation before reporting account deletion complete
- •Backups in destinations you control must be deleted separately; infrastructure copies age out under provider retention rules
Security Summary
| What | How We Protect It |
|---|---|
| Local conversations | Stored on-device by default |
| API keys | Device-level encrypted storage |
| Cloud sync data | End-to-end encrypted (you hold the key) |
| Account credentials | Email, provider sign-in, or locally derived recovery credentials |
| Diagnostic logs | Minimized, sanitized, and remotely disableable |