Double SHA-256 (SHA-256d) Hash Generator

Compute double SHA-256 (SHA-256d), the Bitcoin hash: SHA-256 of the binary SHA-256 digest. Hex input, reversed byte order option, runs in your browser.

SHA-256d

Runs entirely in your browser. Your data is never uploaded.

What is Double SHA-256 (SHA-256d)?

Double SHA-256, also written SHA-256d, hashes the input with SHA-256 and then hashes the resulting 32-byte binary digest with SHA-256 again. It is the hash Bitcoin uses for block headers, transaction ids, Merkle trees and Base58Check checksums. This tool can also show the result in reversed byte order, the way block explorers display hashes.

How to use Double SHA-256 (SHA-256d)

  1. Enter the data in Text to hash; for Bitcoin structures choose Hex bytes as input encoding and paste the serialized header or transaction.
  2. Leave the encoding on Text (UTF-8) to hash a plain string instead.
  3. Tick Reverse byte order to get the value as shown by block explorers and Bitcoin Core (txid / block hash).
  4. Choose the Output format and click Copy.

Example

Input
Bitcoin genesis block header (Hex bytes): 0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c, Reverse byte order on
Output
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

This is the well-known genesis block hash. Without byte reversal the output is 6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000.

When to use Double SHA-256 (SHA-256d)

Use it to check a Bitcoin block header or transaction id by hand, to compute Base58Check checksums (first 4 bytes of SHA-256d), or to reproduce SHA-256d values from other protocols. Do not use it for passwords, and do not use it if a specification asks for plain SHA-256 — the results are different. Hashing the hex text of a digest a second time is not SHA-256d either.

How Double SHA-256 (SHA-256d) works

The tool computes SHA-256(SHA-256(data)). The important detail is that the second SHA-256 runs over the 32 raw bytes of the first digest, not over its 64-character hex string — many online tools get this wrong. Bitcoin treats the 32-byte result as a little-endian number, so the familiar block hash with leading zeros is the digest with its bytes reversed; the Reverse byte order option does exactly that.

Common Use Cases

  • Verify a Bitcoin block hash from its 80-byte header
  • Compute a transaction id (txid) from a raw serialized transaction
  • Calculate the 4-byte checksum of a Base58Check address or WIF key
  • Cross-check a mining or wallet implementation during development

Security Note

SHA-256d is as collision resistant as SHA-256. It is not a password hash — use Argon2, scrypt or bcrypt for passwords. All hashing happens locally in your browser.

FAQs

Why does Bitcoin hash twice?

Satoshi used SHA-256d, most likely as a defence against length-extension attacks on a single Merkle–Damgård hash. It does not make collisions harder to find than SHA-256 itself, but it is now fixed in the protocol.

Why does my result not match the block explorer?

Three common causes: the header was entered as text instead of Hex bytes, the second hash was taken over the hex string instead of the raw digest, or the byte order was not reversed. Tick Reverse byte order for explorer-style hashes.

What is the double SHA-256 of "abc"?

With UTF-8 input and normal byte order it is 4f8b42c22dd3729b519ba6f68d2da7cc5b2d606d05daed5ad5128cc03e6c6358.

Explore more categories