BitGo JavaScript SDK
Switch branches/tags
Clone or download
james8nguyen BRE-213 Updated SDK version to 4.41.0 for Sprint Nightcrawler release…
… rn20181115.

Reviewers: tyler, bigly, perry

Reviewed By: perry

Subscribers: tyler

Differential Revision: https://phabricator.bitgo.com/D10437
Latest commit 3876595 Nov 16, 2018
Permalink
Failed to load latest commit information.
bin BG-4578: Fix bitgo-express startup error due to incorrect parens plac… Sep 7, 2018
example BG-7743: added get max spendable example usage file Oct 1, 2018
src BG-8712: Enable OFC coin wallet creation in SDK Nov 15, 2018
test BG-8712: Enable OFC coin wallet creation in SDK Nov 15, 2018
.arcconfig revert arc immutability Jan 18, 2018
.arclint changed eslinter from arcanist-extensions to a script and regex soultion Nov 27, 2017
.dockerignore docker deployment files Apr 28, 2017
.eslintignore changed eslinter from arcanist-extensions to a script and regex soultion Nov 27, 2017
.eslintrc.json added new rules for and updated eslint Feb 12, 2018
.gitignore BG-6806: Add and configure codecov support Sep 13, 2018
.karma.conf.js run tests in browser with karma Apr 8, 2015
.npmignore add npm ignore file and up package version Dec 21, 2017
.travis.yml BG-8638: Don't update npm before installing on travis Nov 5, 2018
Dockerfile docker deployment files Apr 28, 2017
Dockerrun.aws.json docker deployment files Apr 28, 2017
LICENSE add apache license to BitGoJS repository Jun 8, 2015
README.md BG-7850-Harbor-SDK - POC Oct 18, 2018
TODO Partial implementation of TransactionBuilder. Jun 3, 2014
package-lock.json BRE-213 Updated SDK version to 4.41.0 for Sprint Nightcrawler release… Nov 16, 2018
package.json BRE-213 Updated SDK version to 4.41.0 for Sprint Nightcrawler release… Nov 16, 2018
webpack.config.js BG-7850-Harbor-SDK - POC Oct 18, 2018
yarn.lock add yarn lock file to BitGoJS to insure dependency integrity Oct 4, 2017

README.md

BitGoJS

BitGo JavaScript SDK

The BitGo Platform and SDK makes it easy to build multi-signature Bitcoin applications today. The SDK is fully integrated with the BitGo co-signing service for managing all of your BitGo wallets.

Included in the SDK are examples for how to use the API to manage your multi-signature wallets.

Please join us on our Slack channel if you have questions or comments about this API.

Known Vulnerabilities Build Status

Installation

Please make sure you are running at least Node version 6 (6.9.5 recommended) and NPM version 3 (3.10.10 recommended). We recommend using nvm, the Node Version Manager, for setting your Node version.

git clone https://github.com/BitGo/BitGoJS

cd BitGoJS

npm install

Full Documentation

View our Javascript SDK Documentation.

Example Usage

Initialize SDK

Create an access token by logging into your bitgo account, going to the API access tab in the settings area and making a developer token.

var BitGo = require('bitgo');
var bitgo = new BitGo.BitGo({ accessToken: ACCESS_TOKEN }); // defaults to testnet. add env: 'prod' if you want to go against mainnet
bitgo.session({}, function(err,res) {
  console.dir(err);
  console.dir(res);
});

Create Wallet

var wallet;
var params = { 
  "passphrase": "replaceme", 
  "label": "firstwallet"
}
bitgo.wallets().createWalletWithKeychains(params, function(err, result) {
  wallet = result.wallet; 
  console.dir(wallet.wallet);
  console.log("Locally created keychain: " + result.userKeychain.encryptedXprv);
});

Create new address

wallet.createAddress({ "chain": 0 }, function callback(err, address) {
    console.dir(address);
});

View transactions

wallet.transactions({}, function callback(err, transactions) {
    console.dir(transactions);
});

Send coins

wallet.sendCoins({ 
  address: "2NEe9QhKPB2gnQLB3hffMuDcoFKZFjHYJYx", 
  amount: 0.01 * 1e8, 
  walletPassphrase:  "replaceme" 
}, function(err, result) {
    console.dir(result);
});

More examples

Further demos and examples can be found in the example directory and documented here.

BitGo Express Local Signing Server (REST API)

Suitable for developers working in a language without an official BitGo SDK.

BitGo Express runs as a service in your own datacenter, and handles the client-side operations involving your own keys, such as partially signing transactions before submitting to BitGo. This ensures your keys never leave your network, and are not seen by BitGo. BitGo Express can also proxy the standard BitGo REST APIs, providing a unified interface to BitGo through a single REST API.

bin/bitgo-express [-h] [-v] [-p PORT] [-b BIND] [-e ENV] [-d] [-l LOGFILEPATH] [-k KEYPATH] [-c CRTPATH]

For a full tutorial of how to install, authenticate, and use Bitgo Express, see the Bitgo Express Quickstart

Usage in Browser

For use inside a browser, BitGoJS can be bundled with any module bundler. There is a Webpack configuration file already included, which can be triggered with package scripts.

For a production build: npm run-script compile

For a development (non-minified) build: npm run-script compile-dbg

To build the test suite into a single test file: npm run-script compile-test

To build for specific coins: npm run compile -- --env.coins="eth, btc, ..."