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
Permalink
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
Gruntfile.coffee 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
README.md 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

README.md

Blockchain.info Wallet Build Status Coverage Status

Be Your Own Bank at blockchain.info/wallet. 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 blockchain.info/wallet. 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 git@github.com:blockchain/My-Wallet-V3-Frontend.git -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 Blockchain.info servers. It is encrypted with your password. The wallet also uses the Blockchain.info servers to show you your balance, notify you of new payments, submit transactions, etc.

About

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

Develop

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:

ROOT_URL=https://blockchain.info

Optionally you can add:

AUTO_RELOAD=1
WEB_SOCKET_URL=wss://ws.blockchain.info/inv
API_DOMAIN=https://api.blockchain.info

Build

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

grunt

Test

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

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:

bitcoin:?address=1FeerpCgswvGRLVKme759C96DUBtf7SvA2?amount=0.01

Contribute

Bug fixes and feedback on our code is always appreciated.

Security

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