Skip to content
The Simplest Bitcoin Wallet
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

The Simplest Bitcoin Wallet

Online Bitcoin wallets often have one or two annoying idiosyncrasies, like demanding mandatory 2-FA, and there's nothing you can do about it.

It's also not clear what information they collect. Besides, sometimes you just need a simple wallet.

So I made The Simplest Bitcoin Wallet :)

Mostly for myself, but maybe somebody will find it useful too. Main discussion is here.

Please help test it, if you have a spare minute.

If you like it, send some love here: 19BryCNdGs5F48J6yvw41pVSd5RDiA4j1x.

The code is based on I removed 3/4 of it, fixed a few bugs and rewrote the rest. It is now easier to read and verify.

It's also a good start if you are interested to learn about Bitcoin and JS wallets since it's a lot simpler than the original.

Usage example:

var tx = btc.new_tx();

tx.add_input ('01020304abcdef', 0, '76a9141d8f0476ea05d9459e004fd0ff10588dd3979e6788ac'); // txid, no, script
tx.add_output('13nwZVh9RsKuZGegVn5KWHM51dA98Mho5f', 1234); // address, amount

var keys = btc.get_keys('123'); // 123 = passphrase

var signed = tx.sign(keys); console.log(signed);

Nothing is sent to my server, everything is done in the browser. It gets utxo and sends signed txs via external API's.

All API access is wrapped in a "backend" object, which can be easily swapped. I wrote two: for and

You can enter a compressed or uncompressed WIF key as your passphrase; this means you can use the same wallets you have at or any other wallet that allows exporting in this format.

You can’t perform that action at this time.