According to this wiki page to create a bitcoin address,

1) you have your public key of the properly derived path

2) Then SHA256 it

3) Then RIPEMD-160 it,

Add version byte at the front and boom blam you’re good.

But in bitcoinjs-lib, they have this function getAddress which seems to skip step 2 and continue down the path ensuring Base58Checking

function getAddress (node) {
  return baddress.toBase58Check(bcrypto.hash160(node.publicKey), bitcoin.networks.bitcoin.pubKeyHash)

My question is, why is bitcoinjs-lib skipping step 1? Don’t you have to SHA256 the pub key again?

Derivation occurs pretty straightforwardly with derivePath

var child1 = root.derivePath("m/44'/0'/0'/0/0")


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.