A Bitcoin wallet for any device, that never holds your keys
It runs in a browser tab, so there's nothing to install. Open it on your phone or on a computer that isn't yours. Your own signer signs each transaction.
The demo has made-up history and talks to no server. You don't need a node to try it.


Nothing to install, on any device
I built it after selling bitcoin in person on a new Linux laptop. Sparrow couldn't open the camera because a library was missing, and I had no quick alternative to finish the deal. A wallet in a browser tab would have done it. Sparrow is great, but it only runs on a desktop.
Open app.wallet.unbeholden.dev on your phone, or on a borrowed laptop in an emergency. On a computer that isn't yours, delete the vault in Settings when you're done. Or host it yourself and open it on all your devices.
Your keys stay on your signer
The wallet only watches. To send, it shows the transaction as a QR code, your signing device signs it, and you scan it back. It connects only to your own Bitcoin node.
What it can't protect you from
Whoever runs the website could change the code, for example to show you a receive address that isn't yours.
For everyday use with real money, run your own copy. The self-hosting guide shows how.
Questions
Why a wallet in a browser?
So you can reach your bitcoin from any device without installing anything. Desktop wallets do this well, but only on the desktop they're installed on. A browser tab works on your phone, on a new laptop, or on a friend's computer.
Can it spend my bitcoin?
No. It's watch-only: you give it your public key or descriptor, never your seed. It can show your balance and build a transaction, but only your signing device can sign one. With no keys in the browser, there's nothing in it for an attacker to steal and spend. What it does store, your descriptor, history and labels, is encrypted in the browser, and locked with your passphrase if you set one.
Then what's the worst that can happen?
A bug or a tampered copy could show you wrong information, or build a transaction that pays the wrong address. Your signer shows the addresses and amounts before you approve, so check them there. A tampered copy could also show you a receive address that isn't yours, or send your addresses to someone else. For large amounts, check receive addresses on your signer too.
Should I trust the hosted copy?
Only as far as you trust whoever runs the website, because they could serve you different code. That's fine for trying it, or for small amounts. For real money, run your own copy. Builds are reproducible, so you can check the files you run match the published source.
Who sees my addresses and balance?
Only your own server, Electrum or Esplora. The wallet has no default server, no analytics and no third-party requests, and won't fall back to a public server if yours is down.
What if someone gets hold of my phone or laptop?
Your wallet data is stored in the browser, encrypted with your passphrase. Without a passphrase, anyone who opens the browser can see your balance and history, but still can't spend. On a computer that isn't yours, delete the vault in Settings when you're done.
Which signers work with it?
Any signer that reads and writes PSBTs over animated QR codes or files, such as a SeedSigner or a Coldcard. It supports single-signature native SegWit and Taproot wallets.
What can't it do yet?
Multisig, hardware wallets over USB, Tor, Lightning, coinjoin and payjoin, silent payments, message signing and fiat prices. Each is written down as a possible addition, but none is promised. Fiat prices would mean a request to a price service, so they'd only ever come as an opt-in.
How was it built?
With the help of AI, under my direction. I decided what it does and reviewed the work, but you should know how it was made before you trust it. The source is on GitHub, and its README has the technical details.