The Simplest Bitcoin Wallet
JavaScript HTML
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bcc cashexplorer changed API paths. This is the fix. Dec 20, 2017
backend_bci.js Added rel="noopener noreferrer" to external links. Nov 14, 2017
common.js Initial import. Feb 26, 2016
elliptic.js Initial import. Feb 26, 2016
hashes.js Initial import. Feb 26, 2016
icon.png favicons added Aug 21, 2017
index.html Added rel="noopener noreferrer" to external links. Nov 14, 2017
test.keys Added uncompressed private keys support. Aug 21, 2017

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.