I'm trying to implement a barebones HD wallet generator in C#. I'm starting with a mnemonic and derivation path m/0' and want to generate BIP141 p2wpkh-in-p2sh addresses. Obviously for the Master Node the fingerprint is 0x00000000, but when I get to depth 1 (0'), I need to calculate the fingerprint of the parent key. My question is, is the formula RipeMD160(parentPrivKey) or RipeMD160(SHA256(parentPrivKey))? I've been looking at Ian Coleman's implementation in javascript (https://iancoleman.io/bip39/) and he seems to do the latter one. However, on this site under "Parent Fingerprint", it says it's the former.


It's ripemd160(sha256(parentpriv)) also known as hash160(parentpriv) source. There is also a python implementation here

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.