A NodeJS implementation on creating addresses from a Bitcoin (zpub, xpub) address

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?

rW3ZpUdwYducwSuD

Posted 2018-09-23T20:00:27.640

Reputation: 21

Answers

0

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

Posted 2018-09-23T20:00:27.640

Reputation: 3 356

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 2018-10-03T02:52:55.527