TeachMeBitcoin

Base58Check (The Legacy Standard)

From TeachMeBitcoin, the free encyclopedia Reading time: 2 min

Base58Check (The Legacy Standard)

Base58Check was the first address encoding standard created for Bitcoin. It was specifically designed to be easy for humans to read and type while providing a robust defense against transcription errors.

1. Why Base58?

Standard Base64 encoding includes characters that look identical in many fonts. To prevent user error, Satoshi created Base58 by removing:

The result is a set of 58 characters that are distinct and easy to tell apart even on small screens or printed paper.

2. The "Check" in Base58Check

An address is not just a base58 string. It includes a mathematical Checksum.

  1. Payload: The version byte + the HASH160.

  2. Double SHA256: Hash the payload twice.

  3. Truncate: Take the first 4 bytes of that hash.

  4. Append: Attach those 4 bytes to the end of the payload.

  5. Encode: Convert the whole thing to Base58.

3. Typo Protection

Because of those 4 checksum bytes, if you change a single character in the address, the math will no longer "Check Out."

4. Version Prefixes

The first byte of the payload determines the starting character of the address.

Component Size (Bytes) Description
Version 1 Identifies the network and type.
Payload 20 The Public Key Hash (HASH160).
Checksum 4 Error detection code.
Total 25 Raw data before encoding.

In the next section, we will look at the modern Bech32 standard.

☕ Help support TeachMeBitcoin

TeachMeBitcoin is an ad-free, open-source educational repository curated by a passionate team of Bitcoin researchers and educators for public benefit. If you found our articles helpful, please consider supporting our hosting and ongoing content updates with a clean donation:

Ethereum: 0x578417C51783663D8A6A811B3544E1f779D39A85
Bitcoin: bc1q77k9e95rn669kpzyjr8ke9w95zhk7pa5s63qzz
Solana: 4ycT2ayqeMucixj3wS8Ay8Tq9NRDYRPKYbj3UGESyQ4J
Address copied to clipboard!