Create a BitLogin account on any site that supports it, and the same login name and password sign you into every other one. No new account to make, no extension to install, no separate signer app to keep paired and running.
No account database to breach, no password-reset email to intercept — just math, run locally, every time.
Forgetting a password and losing a device are different emergencies. BitLogin keeps them cryptographically separate.
Login name + password deterministically derive a private "locator" key and an encryption key. That key finds and decrypts a small credential capsule — no lookup table, no server, no email.
A 12-word phrase derives a completely independent recovery identity. A cracked password can never sign, replace, or delete the recovery capsule — it has no authority over that path at all.
Both paths unlock the exact same everyday keypair — your real, canonical, portable identity. Change your password as often as you like; the identity underneath never moves.
Both of those are good tools for the people already running them. BitLogin exists for everyone else.
Sign in on your phone, at work, or in a private window, and you're locked out — the keys never left that one browser profile.
Every sign-in bounces through a separate signing app or "bunker" that you have to keep running, paired, and reachable.
The two things you already remember. Nothing to install, nothing else to keep online, works the same on any device or browser.
Every design choice traces back to one constraint: it has to work with nothing but static files and a public network.
The whole client — crypto, UI, worker — ships as files. Host it anywhere: Pages, IPFS, a folder on a CDN. No backend to run or pay for.
Encrypted capsules are published to multiple independent relays with quorum reads and readback verification, so losing any one of them doesn't lock anyone out.
A downloadable encrypted capsule can be attacked offline forever, so BitLogin generates a high-entropy passphrase for you by default. Prefer your own? It's allowed, but it has to clear a real entropy floor and a common-password check — no "password123", ever.
Memory-hard key derivation, authenticated encryption, canonical serialization, and fixed padding buckets so ciphertext size doesn't leak contents.
A local generation high-water mark and monotonic timestamps mean a stale or malicious relay can't quietly roll a logged-in device back to an older capsule.
Once unlocked, BitLogin quietly plugs into the same window.nostr interface browser extensions use — apps built for those work with zero code changes.
One script tag, one custom element. No build step, no framework required.
<script type="module" src="/vendor/bitlogin/bitlogin.js"></script>
<bitlogin-auth vault-relays="wss://relay.example,wss://relay2.example"></bitlogin-auth>