Skip to main content

Base58 | Bitcoin Glossary | Mapping Bitcoin

Base58

Protocolo

Also known as: Base58Check

A binary-to-text encoding scheme used in Bitcoin to represent addresses and private keys in a human-readable format. It excludes visually ambiguous characters (0, O, I, l) to reduce transcription errors. Base58Check adds a checksum for error detection.

Overview

Base58 is an encoding system that converts binary data into a compact, human-readable string using 58 alphanumeric characters. It was designed by Satoshi Nakamoto specifically for Bitcoin to minimize the chance of errors when users manually copy or transcribe addresses and private keys.

Character Set

Base58 uses the following characters, deliberately excluding those that are easily confused:

Standard Base64 alphabet:
  A-Z  a-z  0-9  +  /

Base58 removes these ambiguous characters:
  0 (zero)    ← confused with O
  O (capital) ← confused with 0
  I (capital) ← confused with l or 1
  l (lower)   ← confused with I or 1
  + and /     ← not alphanumeric

Resulting Base58 alphabet:
  1 2 3 4 5 6 7 8 9
  A B C D E F G H J K L M N P Q R S T U V W X Y Z
  a b c d e f g h i j k m n o p q r s t u v w x y z

Base58Check

Base58Check extends Base58 by prepending a version byte and appending a 4-byte checksum (the first 4 bytes of a double SHA-256 hash of the payload). This checksum allows wallets to detect typos before sending a transaction to an invalid address.

Transition to Bech32

While Base58Check served Bitcoin well for years, it has been largely superseded by Bech32 for SegWit addresses. Bech32 provides stronger error detection, is case-insensitive, and produces smaller QR codes. However, Base58Check is still widely used for legacy addresses and WIF-encoded private keys.