react-native-bitcoinjs-lib
v2.3.9
Published
Client-side Bitcoin JavaScript library for React Native
Downloads
285
Maintainers
Readme
ReactNative BitcoinJS (react-native-bitcoinjs-lib)
ReactNative-ready fork of the original bitcoinjs package. Used by over a million wallet users and the backbone for almost all Bitcoin web wallets in production today.
Features
- Clean: Pure JavaScript, concise code, easy to read.
- Tested: Coverage > 90%, third-party integration tests.
- Careful: Two person approval process for small, focused pull requests.
- Compatible: Works on Node.js and all modern browsers.
- Powerful: Support for advanced features, such as multi-sig, HD Wallets.
- Secure: Strong random number generation, PGP signed releases, trusted developers.
- Principled: No support for browsers with crap RNG (IE < 11)
- Standardized: Node community coding style, Browserify, Node's stdlib and Buffers.
- Fast: Optimized code, uses typed arrays instead of byte arrays for performance.
- Experiment-friendly: Bitcoin Mainnet and Testnet support.
- Altcoin-ready: Capable of working with bitcoin-derived cryptocurrencies (such as Dogecoin).
Installation
npm i react-native-bitcoinjs-lib --save
Setup
Create the react native project.
react-native init fooApp
Install rn-nodeify to be able to use Node.js libs.
npm i rn-nodeify -g
Add this postinstall script to install & hack the Node.js libs for the usage in React Native.
"postinstall": "rn-nodeify --install stream,buffer,events,assert --hack"
Install & link required dependencies.
npm i react-native-bitcoinjs-lib react-native-randombytes --save && react-native link react-native-randombytes
Run the postinstall, it will create a shim.js file which you need to include in your index file (see Usage).
npm run postinstall
Run the app
react-native run-android
or react-native run-ios
Usage
Edit index.android.js and index.ios.js
// node.js libs
import './shim' // make sure to use es6 import and not require()
import Bitcoin from 'react-native-bitcoinjs-lib'
[...]
const keypair = Bitcoin.ECPair.makeRandom()
console.log(keypair.getAddress()) // your brand new base58-encoded Bitcoin address
Examples
Run the example app or refer to the original repository for more available examples.
Projects utilizing BitcoinJS for Node.js and Browsers
- BitAddress
- Blockchain.info
- Blocktrail
- Dark Wallet
- DecentralBank
- Dogechain Wallet
- EI8HT Wallet
- GreenAddress
- Robocoin
- Skyhook ATM
Projects utilizing BitcoinJS for React Native
Complementing Libraries
- BIP21 - A BIP21 compatible URL encoding utility library
- BIP38 - Passphrase-protected private keys
- BIP39 - ReactNative-ready Mnemonic generation for deterministic keys
- BIP32-Utils - ReactNative-ready set of utilities for working with BIP32
- BIP32-Wallet - A BIP32 Wallet backed by bitcoinjs-lib, lite on features but heavily tested
- BIP66 - Strict DER signature decoding
- BIP69 - Lexicographical Indexing of Transaction Inputs and Outputs
- Base58 - Base58 encoding/decoding
- Base58 Check - Base58 check encoding/decoding
- BCoin - BIP37 / Bloom Filters / SPV client
- insight - A bitcoin blockchain API for web wallets.
Alternatives
There are currently no alternatives for React Native.
LICENSE MIT
Copyright
BitcoinJS (c) 2011-2016 bitcoinjs-lib contributors
Released under MIT license