Base58 Encoder/Decoder

Encode hex to Base58 and Base58Check (Bitcoin format with checksum), or decode Base58 strings back to hex.

Enter hexadecimal bytes to encode. When Base58Check is enabled, the version byte and checksum are automatically added.

How to Use

  1. Choose a mode — Select Encode (hex → Base58) or Decode (Base58 → hex) using the tabs.
  2. Enable Base58Check — Toggle Base58Check to add (encode) or verify (decode) the version byte and double SHA-256 checksum used in Bitcoin addresses.
  3. Enter data — Type or paste hex (for encode) or Base58 (for decode) in the input field.
  4. View results — The converted output appears in real-time with detailed breakdown including version byte identification and length information.

All conversion is performed 100% client-side in your browser. No data is sent to any server.

What Is Base58?

Base58 is an encoding scheme used primarily in Bitcoin and other cryptocurrencies to represent large numbers in a compact, human-readable format. It was designed to be user-friendly by removing visually ambiguous characters (0, O, I, l) that are present in Base64. The alphabet consists of 58 characters:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Base58Check is an extension of Base58 that adds a version byte prefix and a 4-byte checksum (double SHA-256) for error detection. This is the format used in Bitcoin addresses (P2PKH, P2SH), wallet import format (WIF) private keys, and extended public/private keys (xpub, xprv).

Bitcoin Version Bytes

Version (hex) Type Prefix
00P2PKH (Legacy)1
05P2SH3
6fP2PKH (Testnet)m/n
c4P2SH (Testnet)2
80WIF Private Key5/K/L
0488b21expub (BIP32)xpub
0488ade4xprv (BIP32)xprv

Frequently Asked Questions

What is the difference between Base58 and Base58Check?

Base58Check adds a version byte prefix (identifying the address type) and a 4-byte double-SHA-256 checksum to the raw data before Base58 encoding. This provides error detection and type identification. Raw Base58 is just the encoding without these extras.

Why does Base58 remove certain characters?

Base58 removes 0 (zero), O (capital o), I (capital i), and l (lowercase L) to prevent visual confusion. For example, "0" and "O" look similar, and "1" and "l" can be confused. This makes Base58 addresses easier to read and transcribe manually.

How does the Base58Check checksum work?

The checksum is the first 4 bytes of the double SHA-256 hash of the payload (version byte + data). It is appended to the payload before Base58 encoding. When decoding, the checksum is extracted and verified against the computed hash, ensuring data integrity.

What is the difference between Base58 and Base64?

Base64 uses 64 characters (A-Z, a-z, 0-9, +, /) but includes visually ambiguous characters like 0/O and +//. Base58 removes these ambiguous characters and is optimized for human readability in contexts like cryptocurrency addresses where manual transcription is common.

Which Bitcoin address formats use Base58Check?

P2PKH (Legacy, starts with "1") and P2SH (starts with "3") addresses use Base58Check encoding. Bech32 (SegWit, starts with "bc1") and Bech32m (Taproot, starts with "bc1p") use a different encoding system and are not Base58.

Related Tools