bitcoinjs/bitcoinjs-lib

Name: bitcoinjs-lib

Owner: BitcoinJS

Description: Bitcoin-related functions implemented in pure JavaScript

Created: 2011-05-04 16:03:45.0

Updated: 2018-01-18 18:00:49.0

Pushed: 2018-01-18 00:31:28.0

Homepage:

Size: 2993

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

BitcoinJS (bitcoinjs-lib)

Build Status NPM tip for next commit

js-standard-style

The pure JavaScript Bitcoin library for node.js and browsers. Estimated to be in use by over 15 million wallet users and is the backbone for almost all Bitcoin web wallets in production today.

Features
Should I use this in production?

If you are thinking of using the master branch of this library in production, stop. Master is not stable; it is our development branch, and only tagged releases may be classified as stable.

Installation
install bitcoinjs-lib
Setup
Node.js
bitcoin = require('bitcoinjs-lib')
Browser

If you're familiar with how to use browserify, ignore this and proceed normally. These steps are advisory only, and may not be suitable for your application.

Browserify is assumed to be installed for these steps.

For your project, create an index.js file

bitcoin = require('bitcoinjs-lib')

our code here
tion myFunction () {
return bitcoin.ECPair.makeRandom().toWIF()


le.exports = {
myFunction

Now, to compile for the browser:

serify index.js --standalone foo > app.js

You can now put <script src="app.js" /> in your web page, using foo.myFunction to create a new Bitcoin private key.

NOTE: If you uglify the javascript, you must exclude the following variable names from being mangled: BigInteger, ECPair, Point. This is because of the function-name-duck-typing used in typeforce.

Example:

fyjs ... --mangle reserved=['BigInteger','ECPair','Point']

NOTE: This library tracks Node LTS features, if you need strict ES5, use --transform babelify in conjunction with your browserify step (using an es2015 preset).

NOTE: If you expect this library to run on an iOS 10 device, ensure that you are using buffer@5.0.5 or greater.

Typescript or VSCode users

Type declarations for Typescript are available for version ^3.0.0 of the library.

install @types/bitcoinjs-lib

You can now use bitcoinjs-lib as a typescript compliant library.

rt { HDNode, Transaction } from 'bitcoinjs-lib'

For VSCode (and other editors), users are advised to install the type declarations, as Intellisense uses that information to help you code (autocompletion, static analysis).

Report any typescript related bugs at @dlebrecht DefinitelyTyped fork, submit PRs to DefinitelyTyped

Flow

Definitions for Flow typechecker are available in flow-typed repository.

You can either download them directly from the repo, or with the flow-typed CLI

# npm install -g flow-typed
$ flow-typed install -f 0.27 bitcoinjs-lib@2.2.0 # 0.27 for flow version, 2.2.0 for bitcoinjs-lib version

The definitions are complete and up to date with version 2.2.0. The definitions are maintained by @runn1ng.

Examples

The below examples are implemented as integration tests, they should be very easy to understand. Otherwise, pull requests are appreciated. Some examples interact (via HTTPS) with a 3rd Party Blockchain Provider (3PBP).

If you have a use case that you feel could be listed here, please ask for it!

Projects utilizing BitcoinJS
Contributing

We are always accepting of pull requests, but we do adhere to specific standards in regards to coding style, test driven development and commit messages.

Please make your best effort to adhere to these when contributing to save on trivial corrections.

Running the test suite
test
run-script coverage
Complementing Libraries
Alternatives
LICENSE MIT

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.