Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
How To Add bitcoinjs-lib Version 4.0.3 To A React Native Project

Newer version available. Please see 5.0.5

How To Add bitcoinjs-lib Version 4.0.3 To A React Native Project

Add/Link the following dependencies:

  • yarn add bitcoinjs-lib@4.0.3 react-native-randombytes buffer-reverse buffer@5
  • yarn add --dev rn-nodeify
  • react-native link react-native-randombytes
  • Add the following postinstall to your script in package.json: "postinstall": "rn-nodeify --install buffer,stream,assert,events,crypto,vm --hack && cd node_modules/bs58 && yarn add base-x@3.0.4 && cd ../../"

Install any remaining dependencies and run postinstall.

NOTE: (If you receive an error about "shim.js" not existing just run yarn install again):

  • yarn install

  • Add the following to shim.js:

if (typeof Buffer.prototype.reverse === 'undefined') {
  var bufferReverse = require('buffer-reverse');

  Buffer.prototype.reverse = function () {
    return bufferReverse(this);
  • Uncomment require('crypto') at the bottom of "shim.js". Or add require('crypto') to the bottom of "shim.js" if it doesn't exist.

Resolve Item In ecpair.js

  • Open ecpair.js in .../bitcoinjs-lib/src/ecpair.js and replace const randomBytes = require('randombytes') with the following: import { randomBytes } from 'react-native-randombytes'

To test if everything is working as expected place the following in render:

import "./shim";
const bitcoin = require("bitcoinjs-lib");
const keyPair = bitcoin.ECPair.makeRandom();
const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey });

This comment has been minimized.

Copy link

@shixiaoquan shixiaoquan commented Mar 6, 2019


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.