I got some btc in testnet, here are the outputs.

this is the UTXO that i get my btc

  "value": 17.24756333,
  "n": 1,
  "scriptPubKey": {
    "asm": "OP_HASH160 71c5584f02c8ccc97e0ef9fa13aa67d989b29c98 OP_EQUAL",
    "hex": "a91471c5584f02c8ccc97e0ef9fa13aa67d989b29c9887",
    "address": "2N3cnkjDZd1HyGEy2D8oh8957Wcc1Cjzxza",
    "type": "scripthash"

this is the tx input using above UTXO.

  "txid": "a40d14b993b0ec1b3e9f952b1faa746e7abe837619da25f4d3b88d4a063884ed",
  "vout": 1,
  "scriptSig": {
    "asm": "001460491e34d09f5621867187d04473aa5013907f79",
    "hex": "16001460491e34d09f5621867187d04473aa5013907f79"
  "txinwitness": [
  "sequence": 4294967294

i think they should follow that format(P2WPKH)

witness:      <signature> <pubkey>
scriptSig:    <0 <20-byte-key-hash>>
scriptPubKey: HASH160 <20-byte-script-hash> EQUAL

but when i do hash160( 0014{20-byte-key-hash} ) in here, hash result is not equal to <20-byte-script-hash> in the scriptPubKey. it should be equal ,right ? what is the problem?

1 Answer 1


Note that you are looking at P2SH-P2WPKH, not just P2WPKH.

You need to hash the bytes as bytes, not as a hex string. The linked website does not allow you to interpret the hex string as bytes - it instead interprets it as a string of characters. This results in the incorrect hash. You will need to use a tool that can interpret the hex string as representing bytes.

  • Think you. I think i kown where is the problem, and could you explain that in more detail. How can i hash the bytes as bytes ? It would be nice if there were some examples Feb 17, 2022 at 3:29
  • You need a tool that will interpret it as bytes. One such that I have used is fileformat.info/tool/hash.htm and putting the hex string into the box for "Binary hash".
    – Ava Chow
    Feb 17, 2022 at 4:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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