๐Ÿ”ค Base58 Converter

Result
72k1xXWG59fYdzSNoA

Encode text into Base58 format โ€” the encoding used for things like Bitcoin addresses that avoids visually ambiguous characters โ€” or decode a Base58 string back into its original text. It excludes 0 (zero), O (capital O), I (capital I), and l (lowercase L) to prevent misreadings when copied by hand.

How to use

  1. Choose "Encode" or "Decode" mode.
  2. Enter text or a Base58 string into the input field.
  3. The converted result appears automatically โ€” use "Copy" to copy it.

How the calculation works

Base58 represents data using only letters and digits, and is used for Bitcoin addresses, IPFS content IDs and more. It uses 58 characters: Base64's alphabet without the easily confused 0 (zero), O (capital o), I (capital i) and l (lower-case L), and without "+" and "/". The whole input is treated as one big number and repeatedly divided by 58, taking each remainder as a character (conversion to base 58). Leading zero bytes would vanish as a number, so each is written as a leading "1". The tool uses JavaScript BigInt (arbitrary-size integers), so long inputs convert exactly.

Worked example

"Hello World!" โ†’ 2NEpo7TZRRrLZSi2U "Hello, World!" โ†’ 72k1xXWG59fYdzSNoA Leading zero bytes Bytes 00 00 01 โ†’ 112 (two leading zeros become two "1"s, and 01 becomes "2") Alphabet: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Things to be aware of

  • Bitcoin addresses use Base58Check, which adds a checksum. This tool neither adds nor verifies checksums.
  • Base58 works by repeated division, so long inputs take longer. It is not suited to large files.
  • If the decoded bytes are not valid UTF-8 (binary data), they cannot be shown as text.

FAQ

What's the difference between Base64 and Base58?

Base58 uses only 58 of Base64's characters, removing visually similar ones (0, O, I, l) and symbols (+, /). It's used in things like Bitcoin addresses to prevent misreading during manual entry.

How are leading zero bytes handled?

Leading zero bytes in the original data are represented as leading "1" characters in the Base58 output, following the standard Base58 encoding convention.

What happens if I enter an invalid Base58 string?

An error message appears if the input contains characters not used in Base58 (like 0, O, I, or l).