An AngularJS bitcoin web wallet powered by My-Wallet-V3.
This is the new and improved wallet. You can see it at alpha.blockchain.info. For the original wallet at blockchain.info please see this repository or contact support.
Make sure you have Node.js installed.
Some NodeJS components need to be installed system wide:
npm install -g grunt-cli coffee-script
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
Grunt watches and compiles the Jade view templates and CSS. Keep it running:
grunt
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 local.blockchain.com:8080. Do not use localhost:8080
. You will need to modify your "hosts" file (/etc/hosts
on OSX and most UNIX systems) because this is no longer registered at the DNS level for application security reasons. Add this line to /etc/hosts
:
127.0.0.1 local.blockchain.com
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
You can open any wallet registered with your email address. It will ask you to upgrade to HD if needed. You can also sign up for a new wallet.
After login, you'll see a list of accounts. There will be delay before transactions and the correct balances show up. If something goes wrong during the login process, error messages appear in the console.
To automatically login after every page refresh, create a file .env
and add SAVE_PASSWORD=1
to it.
To reclaim funds from an email take code at the of link and add it to #/claim
, e.g.:
https://blockchain.info/wallet/claim#7Educ5YNnVPQCQ556w7W8tQpj1dchhxPK56vVNab68cK
http://local.blockchain.com:8080/#/claim/7Educ5YNnVPQCQ556w7W8tQpj1dchhxPK56vVNab68cK
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
Did you know you can sign your commits using a PGP key?
Not supported by the server yet.
Create a static HTML/JS/CSS distribution package in dist
.
grunt dist
If you get 403 error from Github (because you exceeded their rate limit), create a personal access token. Only select public_repo
from the list.
GITHUB_USER=... GITHUB_TOKEN=... grunt dist
If you don't care about securely downloading dependencies and want to avoid using your Github credentials, use grunt dist_unsafe
instead.
You can test the resulting files by setting DIST=1
in .env
and restarting the server.
index.html
should be cached using If-Modified-Since
or etag
. All other files contain a hash of their content and should be cached forever.
Security issues can be reported to us in the following venues:
- Email: security@blockchain.info
- Bug Bounty: https://www.crowdcurity.com/blockchain-info