the password manager
that can't read your data.
Every entry is encrypted in your browser under a key only your passphrase unlocks. We store ciphertext and nothing that opens it. Sign in with a Bitcoin wallet or an email code.
eight entry types. every secret you actually have.
Each entry is encrypted on its own with AES-256-GCM under your vault key. Mix and match. There is no per-type quota.
Username, password, URL, notes. Generate a 24-character password in two clicks. Copy with one. No browser extension required — the dashboard is the autofill.
Paste a base32 secret or an `otpauth://` URI. The 6-digit code rotates every 30 seconds, visible in the list view at a glance. Survives phone loss; never sees a Google or Authy cloud.
Never paste your `OPENAI_API_KEY` into a browser tab again. Never email a Stripe live key to a coworker. Never type your AWS access key into a shell history. Pulls into your terminal via the CLI; never typed into the URL bar.
Cardholder, number, expiry, CVV, PIN, billing ZIP. The list view shows only the last four digits; the rest stays sealed until you reveal it. Copy the number with one click and the clipboard self-wipes 30 seconds later.
Name, email, phone, company, address — the block of personal data every checkout and signup asks for. Kept in one encrypted entry instead of scattered across a dozen browser autofill profiles you do not control.
Every service emits a wall of 8-character recovery codes that are "important — save these somewhere safe." This is somewhere safe. Encrypted, and there in any browser you sign in from.
Anything you would type into a notes app, encrypted before it is saved.
Up to ~1 MB of binary payload per entry. The file becomes ciphertext on disk and stays ciphertext in transit.
Bitcoin (or any cryptocurrency) seed phrases. The whole point of self-custody is that the seed never touches a connected device. Put your seed on metal — Coldcard tap-seed, Seedplate, Steelplate, Bitkey, Hodlr, Cobo Tablet, hand-stamped washers — and keep it in a safe. The vault supports a "seed phrase" entry type only for edge cases (BIP-39 passphrases that are NOT the full seed, non-Bitcoin recovery phrases, etc.). We will not market vault as "the place for your seed," and you should not treat it as one.
> If you came here to store a Bitcoin seed: please don't. Go here first. Software is the wrong layer.
> Every entry is sealed client-side with AES-256-GCM under a vault key your browser holds. OC sees ciphertext only. Lose the cloud → your local copy keeps working. Lose your passphrase → unlock with the recovery code from setup. Lose both → no recovery, by design; we hold only the sealed blob.
four steps. one passphrase.
You are the only one who can read what you store. OC keeps ciphertext and passes it between your devices.
- [01]
connect
Open vault.ochk.io and sign in to your OrangeCheck identity — a single BIP-322 signature from a Bitcoin wallet, or an email one-time code. No password to choose, no second account to create.
- [02]
add a secret
Password, 2FA code, API key, card, note, or small file. Your browser encrypts it before it is saved. Plaintext never leaves the tab.
- [03]
sync or export
Free: it stays in this browser, and you can back it up to a file any time. Paid: 7,000 sats per 30 days or 70,000 sats per year, on-chain, syncs it to every device you sign in on.
- [04]
unlock anywhere
Any browser, any device. Sign in, then enter your vault passphrase. Signing in fetches the sealed key; only your passphrase or recovery code opens it.
the key never leaves your browser. we hold only ciphertext.
Every entry is encrypted in your browser under a key your passphrase unlocks. Our servers keep the ciphertext and nothing that opens it.
| system | account | master password | recovery | export format | payment |
|---|---|---|---|---|---|
| 1Password | required | yes (KDF-protected) | recovery kit + secret key | proprietary 1pux | card · subscription |
| Bitwarden | required | yes (KDF-protected) | emergency contact | json (cleartext or encrypted) | card · subscription |
| LastPass | required | yes (KDF, weak by default) | account-recovery flow | csv (cleartext) | card · subscription |
| Apple iCloud Keychain | apple id required | device passcode | apple-mediated | none (locked-in) | bundled w/ icloud |
| self-hosted KeePassXC | none | yes (file passphrase) | you keep the file | kdbx (open) | free · self-managed |
| oc vault | orangecheck sign-in | passphrase (generated by default) | passphrase or recovery code | encrypted backup (open) | sats · on-chain · no card on file |
> All of vault.ochk.io’s data gets an attacker ciphertext and your key sealed under scrypt (N=217). A generated passphrase is six random words, about 50 bits, out of practical reach at that cost. A passphrase you choose is only as strong as you make it.
Your passphrase never reaches us and we cannot reset it. Your recovery code is the only other way in.
An encrypted backup holds your key and every entry under a passphrase you choose. It opens anywhere with that passphrase and open code.
Read the underlying protocol design at oc-lock-protocol/WHY.md — the self-vault idea OC Vault is built around.
the four objections we hear most. addressed up front.
- do I need a bitcoin wallet to use this?
- No. Sign in with an email code, or with Google or GitHub. A Bitcoin wallet (BIP-322) is the option that needs nobody else, and you can link one later without losing anything. Either way, your entries open with your vault passphrase, not your sign-in.
- what if vault.ochk.io disappears tomorrow?
- Keep an encrypted backup from settings: one file holding your vault key and every entry, sealed under a passphrase you choose. It restores on any device with open code (scrypt, AES-256-GCM), no server involved.
- can OC read my entries?
- No. We hold ciphertext only. The vault key is derived from your passphrase, in your browser; cloud-sync blobs are double-encrypted so we don't even see entry names or types — just random envelope ids and timestamps. Full database access recovers ciphertext that requires your passphrase to decrypt.
- how is this different from just using LastPass or 1Password?
- They encrypt under a master password too. A breach of the vendor's database — like LastPass in 2022 — exposed weak master passwords to offline guessing. OC Vault suggests a generated passphrase (six random words, about 50 bits) and stretches it with scrypt, so a stolen database is not a practical target. You can choose your own; it is then only as strong as you make it. You also pay in sats, with no card on file.
> More questions on /pricing — and the underlying protocol design is at oc-lock-protocol.
open code underneath.
OC Vault is the commercial product. The cryptography under it is MIT-licensed, on npm, and works without us.
- oc-lock-protocol ↗the open spec · Flow 4 is the self-vault design
- @orangecheck/lock-crypto ↗X25519, HKDF-SHA256 and AES-256-GCM: what vault encrypts with
- @orangecheck/lock-device ↗device keys, used to hand your vault key to a new browser
- lock.ochk.io ↗reference web client for the broader OC Lock protocol (Flows 1-3)
bitcoin-bound.
ciphertext-only.
yours by construction.
Free in your browser. Cloud sync is 7,000 sats per 30 days or 70,000 sats per year, prepaid on-chain. No card, no auto-renew.
with thanks to bram kanstein — whose work on bitcoin as sovereignty layer shaped the premise.