Blockchain Wallet Frontend
JavaScript CoffeeScript HTML CSS Ruby Makefile Shell
Latest commit e5d8c92 Jan 23, 2017 @jtormey jtormey committed on GitHub Merge pull request #923 from blockchain/dev-build
Faster Builds
Failed to load latest commit information.
app Merge pull request #918 from blockchain/landing-header-fix Jan 23, 2017
assets Merge pull request #920 from blockchain/qwallety Jan 23, 2017
helperApp fix(Plaid): use tartan for staging Jan 11, 2017
hooks Add install script for pre-commit git hook May 5, 2015
img fix(SFOX): state select dropdown Jan 18, 2017
locales chore(Copy): change 'verification' to 'authentication' in ip whitelis… Jan 19, 2017
rootApp/Resources fix(Plaid): use tartan for staging Jan 11, 2017
tests Merge pull request #920 from blockchain/qwallety Jan 23, 2017
.changelogrc dev(Server): SFOX production CSP Dec 19, 2016
.gitignore chore(Gitignore): ignore .tern-project config file Dec 6, 2016
.gitmodules MyWallet is no longer a submodule. Mar 30, 2015
.travis.yml feat(Performance): landing page loads much faster (#447) Jun 28, 2016 chore(Build): only build webpack for helperApp changes Jan 23, 2017
Makefile fix(WalletHelper): use /wallet-helper instead of /helper-app Jan 12, 2017
Procfile Use CoffeeScript for server side Javascript. Sep 23, 2014 feat(Deploy): allow custom websocket domain Nov 14, 2016
beep.wav Fixed the Beep and favicon. May 5, 2015
bower.json feat(SFOX): add checkout process to last step of signup Jan 11, 2017
check_bad_strings.rb fix(UI): enforce rel=noopener noreferrer Dec 21, 2016
check_pgp_signatures.rb feat(Release): simplify and use Makefile Mar 25, 2016
check_translations.rb copy(Strings): remove unused strings Jan 12, 2016
dependency-whitelist.json chore(Whitelist): allow Jenkins to sign dependencies Apr 1, 2016
karma.conf.js feat(BuyStatus): shouldShowInviteForm() Dec 19, 2016
my_wallet_bower_version.rb fix(Travis): minified javascript hash now matches local build Apr 1, 2016
package.json chore(Release): v1.11.4 including blockchain/bitcoin-sfox-client#2 Jan 18, 2017
server.js fix(WalletHelper): use /wallet-helper instead of /helper-app Jan 12, 2017
webpack.config.js feat(SiftScience): add scaffold to Helper App and configure webpack Jan 6, 2017 Wallet Build Status Coverage Status

Be Your Own Bank at Please contact support if you have any issues using the wallet.

Run the wallet on your own computer

The normal and easiest way to use our wallet is to go to However if you like more control over the exact code that runs in your browser, you can download the source code and run the wallet from a simple server on your own machine. Here's how:

  1. Install Node.js
  2. git clone -b v1.7.32 --single-branch --depth 1
  3. make server

Login to your existing wallet or create a new one at http://localhost:8080/.

You can replace v1.7.32 with any tagged version you like, but we recommend always using the latest release. The versions marked as pre-release have not gone through extensive internal testing yet.

Note that the wallet itself is still stored on servers. It is encrypted with your password. The wallet also uses the servers to show you your balance, notify you of new payments, submit transactions, etc.


The frontend code in this repository uses AngularJS. The Bitcoin specific tasks are handled by My-Wallet-V3, which is included via Bower.


Make sure you have Node.js installed.

You also need Sass (use sudo if you're not using a Ruby version manager):

gem install sass

Install dependencies:

npm install

Create a file called .env in the root of the project. Put the following in it:


Optionally you can add:



Grunt watches and compiles the Jade view templates and CSS. Keep it running:



To run test and monitor for changes:

npm test

A coverage report is generated after you run the test for the first time. Just open coverage/index.html in your browser.


Run local http server:

npm start

Visit localhost:8080.

Developing My-Wallet-V3

If you are making changes to My-Wallet-V3 that you want to try out in the frontend, create a symlink:

rm My-Wallet-V3-Frontend/bower_components/blockchain-wallet/dist/my-wallet.js
ln -s ../../../../My-Wallet-V3/dist/my-wallet.js My-Wallet-V3-Frontend/bower_components/blockchain-wallet/dist/my-wallet.js

To automatically login and go back to where you last were in the app after every page refresh, create a file .env and add AUTO_RELOAD=1 to it.

If you enable "handle bitcoin links" in your wallet settings, you can open bitcoin URI's like this one:



Bug fixes and feedback on our code is always appreciated.


Security issues can be reported to us in the following venues: