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

user63569: 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


77083: <p>Why does bitcoin address encoding use base58 instead of, for instance, base64? I don't see it is useful in any way.</p>
 63569: <p><strong>Why base-58 instead of standard base-64 encoding?</strong></p>

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

<p><strong>Features of Base58Check</strong></p>

<ul>
<li><p>An arbitrarily sized payload</p></li>
<li><p>A  set of 58 alphanumeric symbols consisting of easily distinguished uppercase and lowercase letters (0OIl are not used)</p></li>
<li><p>One byte of version/application information. Bitcoin addresses use 0x00 for this byte (future ones may use 0x05).</p></li>
<li>Four bytes (32 bits) of SHA256-based error checking code. This code can be used to automatically detect and possibly correct typographical errors.</li>
<li>An extra step for preservation of leading zeroes in the data</li>
</ul>
