BITCOIN MAINNETLive explorer status
THE MATHS, GENTLY

Bytes and endianness

Bitcoin stores most numbers least-significant byte first (little-endian), which is why txids and block hashes look reversed in raw data. Learn why.

Which end first?

A number bigger than 255 needs several bytes. Big-endian puts the biggest byte first, the way we write numbers. Little-endian puts the smallest byte first.

The block height 305,175 (0x0004a817) as written and as stored little-endianas writtenas stored001704a8a8041700little-endian: the same bytes, least significant first
The block height 305,175 (0x0004a817) as written and as stored little-endian

Where Bitcoin uses little-endian

  • Version, locktime, sequence and amounts in transactions.
  • Header fields: version, time, bits, nonce.
  • Hashes: the bytes produced by SHA-256 are treated as a little-endian number.

The reversed hash

Because hashes are little-endian internally, explorers reverse them for display. The txid you see in a wallet is the reverse of the raw hash bytes. When you use a txid inside a raw transaction input, you reverse it back.

TRY IT · DECIMAL, HEX AND BYTE ORDER
Hexadecimal0x7a120
4 bytes, big-endian (how people write numbers)00 07 a1 20
4 bytes, little-endian (how Bitcoin stores most numbers)20 a1 07 00
EXAMPLE

Reading an amount

The 8 bytes 00e1f50500000000 in an output are little-endian. Reversed: 0000000005f5e100 = 100,000,000 sats = 1 BTC.

The most common mistake

Developers often search for a txid inside raw block data and can't find it, because the raw data holds the bytes in reverse order. Reverse the 32 bytes (not the characters) and it appears.

EXAMPLE

Reversing correctly

Hash as displayed: a1b2c3d4…. Reverse byte by byte: …d4c3b2a1. Reversing character by character (…4d3c2b1a) would be wrong.

Share this guide
Share on X ↗

Key takeaways

  • Little-endian stores the least significant byte first.
  • Most numbers inside Bitcoin data are little-endian.
  • Displayed txids and block hashes are byte-reversed.

Common questions

Why did Bitcoin use little-endian?

Most computers (x86) work natively in little-endian, and Satoshi's code wrote numbers directly from memory.

Are scripts little-endian too?

Numbers pushed in scripts are little-endian, yes.

Which Bitcoin values are big-endian?

Mostly data pushed in scripts such as public keys, and Bech32 address data. Numbers in transaction and header fields are little-endian.

Do I need to reverse a txid to look it up?

No. Explorers and wallets expect the normal displayed form.