Our on-device and E2EE promise
Dreams are unguarded in a way most writing isn't. We designed Oliminal so that your entries are unreadable to us — not as a policy we promise to follow, but as a property of how the system is built.
On-device, where it matters most
On the Android app, transcription of your spoken dream happens entirely on your device — the audio never has to leave your phone to become text. There's no server in the loop for the most sensitive step: turning your half-asleep voice into words.
End-to-end encrypted, always
Every dream, journal entry, and interpretation is encrypted on your device before it's sent anywhere, using a key derived from your password. That key is never transmitted or stored in a form we could read. Our servers hold ciphertext and a wrapped copy of your encryption key — wrapped in a lock only your password (or your recovery code) can open.
This means:
- We can't read your entries, even if we wanted to.
- A breach of our database exposes encrypted content, not your words.
- Changing your password re-wraps your key — it never requires re-encrypting your entries.
AI readings without a copy
When you request an AI interpretation, your device decrypts the relevant text and sends it straight from your browser to the AI provider — using your own API key, stored only on your device. It never touches our servers, and the response is re-encrypted before it's stored.
Pairing a second device
Linking your phone and your home hub uses a short-lived QR code to transfer your encryption key directly between your devices — never through a channel we can observe.
If any part of this is unclear or you'd like more technical detail, we're happy to talk — reach out via our contact page.