Why does bitcoin address encoding use base58 instead of, for instance, base64? I don't see it is useful in any way.

1 Answer 1


Why base-58 instead of standard base-64 encoding?

  • Don't want 0OIl characters that look the same in some fonts and could be used to create visually identical looking account numbers.
  • A string with non-alphanumeric characters is not as easily accepted as an account number.
  • E-mail usually won't line-break if there's no punctuation to break at.
  • Double-clicking selects the whole number as one word if it's all alphanumeric.

Features of Base58Check

  • An arbitrarily sized payload

  • A set of 58 alphanumeric symbols consisting of easily distinguished uppercase and lowercase letters (0OIl are not used)

  • One byte of version/application information. Bitcoin addresses use 0x00 for this byte (future ones may use 0x05).

  • Four bytes (32 bits) of SHA256-based error checking code. This code can be used to automatically detect and possibly correct typographical errors.
  • An extra step for preservation of leading zeroes in the data

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.