Prove it yourself · twiga vault
Don’t take our word for it. We ship the app’s JavaScript, so nothing it shows you proves anything about us. Read this page’s source, save it, disconnect, and run it. It repeats our crypto and checks it against the raw bytes we store about you.
Zero network. Verify that.
This file makes no fetch, no XHR, loads nothing external. Open View Source — every line runs right here. Save the page, disconnect, and run it air-gapped. You type your key into this tab.
1 · Your inputs
2 · The proof
ed25519(HKDF(your key)): the login we hold is derived from your key, not from a key of ourswrapped_dek opens with HKDF(your key) to a 32-byte key: the DEK that seals your vault. The only other stored openers are your recovery code and any TV you've paired.wrapped_dek_recovery opens with your recovery code (Argon2id, then HKDF) to the same DEK as B — optional; it takes a few secondsWhat this proves: the sealed copy of your vault key that we store at rest is derived from, and encrypted under, your key. It does not cover what happens while you’re signed in. Your provider login is sealed in your browser with your key. The server stores ciphertext and opens it in memory while you’re signed in, then wipes it 30 minutes after your session goes quiet.
What it can’t prove on its own: that the copy of this page we served you is the one everyone else gets. Code delivered fresh on each visit asks for some trust in delivery. Shrink that: save this page, read every line, and run it again offline whenever you like. A page that works with no network can’t be fetching a doctored copy. Prefer a terminal? The same checks are a zero-dependency Node script: download /twiga-verify.mjs and run node twiga-verify.mjs --key <your twiga key> --export twiga-export.json.