Sunward

A key only you hold. A file we cannot read.

How the encryption works, in plain words, and what happens in every situation you might find yourself in: a new phone, a lost phone, a forgotten passphrase.

The idea in one paragraph

Most finance apps keep your numbers on their servers in a form their staff, their hosting provider, or an attacker could read. Sunward does not. Your numbers are encrypted on your phone with a key that is made from a passphrase you choose, and only the encrypted result is stored. The server holds one scrambled file per person. We cannot open it. Nobody who breaks into the server can open it. A court order would get them the same scrambled file. This is what "end-to-end encrypted" means here: the ends are your phone and your phone; the middle is blind.

The trade: because we cannot read your vault, we cannot recover it for you. The recovery phrase exists for exactly that reason. Read the scenarios below before you decide how to keep it.

How it works

Your phone holds the keys; the server holds a scrambled file. On the phone: a vault key, locked twice, once by your passphrase and once by twelve words. Only the scrambled vault and the two locked copies travel to the server. The passphrase, the words and the unlocked key never leave. Your phone Vault key random, made here, never sent Passphrase locks a copy 12 words lock another Your numbers, readable here € 412,300 · 14.2 oz · Mortgage −€188k encrypted vault two locked key copies passphrase, words and the open key never cross Our server One scrambled file 9f3a c01e 77b2 e8d4 0a5c b61d 2f90 aa17 4c3e … locked key locked key Cannot be opened here not by us, a thief, or a court
Two ends: your phone, and your phone. The server in the middle stores what it cannot read.
  1. A key is made Setting up the vault creates a random 256-bit key on your phone. It encrypts everything and never leaves unencrypted.
  2. You choose a passphrase It becomes a wrapping key through scrypt, a deliberately slow function, so guessing is expensive. The vault key is locked inside it.
  3. Twelve words are drawn A standard recovery phrase locks a second copy of the vault key. Write them down; they are your way back in.
  4. Only sealed things travel The encrypted vault and the two locked key copies go to the server. Your passphrase and words do not.
  5. Your phone keeps the open key In the hardware keystore, behind your screen lock and, if you turn it on, the fingerprint lock. So you do not type the passphrase daily.

The cipher is XChaCha20-Poly1305. It is authenticated: change one byte of the file and decryption fails instead of showing wrong numbers. Your daily history is written by the phone too, from your holdings and each day's market close, so the server never needs your numbers to keep the chart complete.

What goes where

Stays on your phone

Nobody else, ever

Passphrase12 wordsUnlocked keyHidden categoriesFingerprint lock on/off

Goes to the server, sealed

Stored, unreadable to us

Places & holdingsBalancesDebtsPensionsHistoryBirth yearRetirement & projection settings

Goes readable, because it must

An account needs it; prices are public

Email addressHashed login password2FA on/offTicker symbols you look up

A symbol alone (VWCE, BTC) says nothing about how much you hold or paid.

Bank logins, card numbers, IBANs, transactions — never exist anywhere. The app does not connect to a bank or broker.

What happens when…

Tap any card for the how.

Everything comes back

You get a new phone

Sign in, enter your passphrase once, and everything is back.

Install Sunward, sign in with your email and password (and your authenticator code if you use two-factor). The app then asks for your vault passphrase, or your twelve words, once. It downloads the encrypted vault, unlocks it on the new phone with the key it just recovered, and fills in any history days that were missed while the app was not open. Every place, holding, debt and pension is there, and so are your birth year and your projection and retirement settings. The unlocked key is then stored in the new phone's keystore, so you are not asked again. Only two things are per-phone: which categories you hide, and whether the fingerprint lock is on.

Everything comes back

You use two phones, or a phone and a tablet

Each device unlocks once; both read the same vault.

Same as above: sign in and enter the passphrase once on each device. Both hold the unlocked key and both read the same encrypted vault. Changes made on one appear on the other the next time it opens.

Nothing lost

You lose your phone, or it is stolen

The vault is not on the phone. Sign out everywhere from a new one.

Whoever has the phone faces your screen lock and, if enabled, the fingerprint lock; the vault key sits behind both in hardware. Your vault is still on the server, encrypted, and the vault file is never stored on a phone: the app fetches it each time with a live login session. So on a new phone, sign in, enter the passphrase, then go to Profile → Sign out on all devices. That revokes every session, including the lost phone's; even if someone gets past its locks, the app there can no longer fetch anything to decrypt. Change your login password as well. There is nothing on the old phone that helps an attacker read the server's copy.

Nothing lost

You forget your login password

Ordinary email reset. It does not touch the vault.

Tap "Forgot password" on the sign-in screen; a reset link arrives by email and opens the app. This is the ordinary account password, which the server knows in hashed form, so resetting it is routine. It is a different thing from the vault passphrase, and resetting it has no effect on your vault.

Use the twelve words

You forget your vault passphrase

Your twelve words open it; then pick a new passphrase.

On a phone that still holds the unlocked key, nothing changes day to day; go to Profile and set a new passphrase while you can. On a new phone, enter your twelve-word recovery phrase instead of the passphrase; it unlocks the vault the same way, and you then choose a new passphrase. The words are the backup for the passphrase, which is why the app asks you to write them down at setup and lets you check them in Profile at any time.

Data is gone, by design

You forget the passphrase AND lose the twelve words

Nobody can open it, including us. Start fresh.

Then the vault cannot be opened by anyone, including us. There is no reset button, because a reset button would be a back door, and a back door for you is a back door for everyone else. You can delete the unreadable vault from Profile and start again; your account and login stay. This is the one real cost of the design. Keep the words somewhere that survives a lost phone: a password manager, or paper in a drawer.

Nothing lost

You uninstall the app

The phone forgets; the server keeps your sealed vault.

Everything the app kept on the phone goes with it: the session, the cached key, the hidden-category and lock preferences. Nothing is left behind, and the app does not let Android back its private data up to Google Drive. The server is unchanged; your vault waits there, encrypted, until you reinstall or delete it. Reinstalling is exactly the new-phone scenario.

You choose

You want your data out, or gone

Export to a file, or delete for good. Both in Profile.

Profile → Export gives you everything as one file, in plain form or encrypted with a password you choose using standard AES-256; the encrypted file carries instructions to open it with OpenSSL on any computer, decades from now, with no Sunward involved. Profile → Delete all data wipes the vault and history and leaves an empty account. Profile → Delete my account removes the vault, the history and your email address. Both are immediate and permanent. Without the app, the same is available by email; see the deletion section of the privacy policy.

Your numbers stay unreadable

Our server is breached, or we are ordered to hand data over

They get scrambled files and locked keys. Nothing that opens them.

The attacker, or the authority, receives what the server holds: email addresses, hashed passwords, and one encrypted file plus two locked key copies per person. The locked keys need your passphrase or your twelve words to open, and neither is on the server. We would tell you about a breach, and you would change your login password; your vault would not need to change, because nothing that opens it was exposed.

What this does not protect against

Encryption protects the copy on the server. It does not protect an unlocked phone in someone else's hands, which is what the screen lock and fingerprint lock are for. It does not protect a passphrase written on a sticky note on the fridge. It does not protect against a compromised phone with malware reading the screen, which no app can. And it does not make the maths in the app more right: the projections and tax estimates are estimates, encrypted or not.

Details for the technically curious: vault key 256-bit random; cipher XChaCha20-Poly1305; passphrase and recovery-phrase keys derived with scrypt (N=215, r=8, p=1) over a random salt, with the KDF identifier stored alongside each wrapped key so the function can be upgraded without breaking old vaults; recovery phrase BIP-39, 12 English words. Libraries: audited @noble ciphers and hashes, @scure/bip39. The design note is in the app's repository.