2

I'm looking for a lightweight node package which can handle creating btc receiving addresses on the server using an extended public key (segwit).

Like this one: zpub6nYqvTejCbqMTRTGz9rHkJnrJKbLsx36LqLnUJChDdJ6a5NA7hBumEpn9HTSDgWpNTNCponkPCBL5VKeAaScVxbXa1H4RPmA4j19rzgJPRp

I tried using https://www.npmjs.com/package/bitcoin-receive-payments But I don't want an OpenExchangeRates account to use this.

There is this guide on PHP https://freedomnode.com/blog/58/generate-bitcoin-wallet-addresses-from-extended-public-key-with-php

But I can't find any equivalent for JS.

I would also be very thankful if there is any explaination for non Math people, as I am just looking to generate addresses on a server based off an extended address.

Someone knows?

m1xolyd1an
  • 5,566
  • 2
  • 14
  • 30

1 Answers1

1

I would suggest using a library such as the bitcoinjs-lib library.

Here's a very stripped down example usage:

let bitcoin = require("bitcoinjs-lib");

function fromXpub(xpub, acctNumber, keyindex, callback){
    let address = bitcoin.HDNode.fromBase58(xpub).derivePath(acctNumber+"/"+keyindex).getAddress(); 
    callback(address);
}

let myxpub = "xpub6C6RXXtdbxSnfB78Y4WjJSjQuChKqHXh9JCZPeKtdGeWRiptL9oJePPtrYKPWaoem9W3Wvp8eEh8dFFuN7u4zT6x6A1H6D67bVVvufv3uJ1";

fromXpub(myxpub, 0, 0, function(cb){
    console.log(cb);
});

13eX3ohuXCa93YgLCkuQF6NmJk8vUwqa8p

m1xolyd1an
  • 5,566
  • 2
  • 14
  • 30
  • Sorry but it seems that your code does not work on my side... i tried to change it to `let address = bitcoin.bip32.fromBase58(xpub).derivePath(acctNumber+"/"+keyindex).__Q.toString('hex');` but i cant find the getAddress method here... – rW3ZpUdwYducwSuD Oct 03 '18 at 02:52