<p>I don't know about the rest of the string but I think the leading bytes are ordered that way to make the types of "addresses" be human reconizable.</p>

<p>From a quick look at the source I think the leading characters, <code>rpshnaf</code> map like so:</p>

<ul>
<li>r = public Ripple address</li>
<li>p = node private</li>
<li>s = Ripple secret</li>
<li>h = ?</li>
<li>n = node public</li>
<li>a = address family generator or seed ?</li>
<li>f = address family generator or seed ?</li>
</ul>

<p>Of these, wallet owners have seen the r* and s* "addresses" and those running ripple will be have seen the n* and p* ones.</p>

CC BY-SA 3.0
2013-10-28T17:01:32.110Z
2013-10-28T17:01:32.110Z
dchapes
<p>In <a href="https://bitcoin.stackexchange.com/a/7599/323">this answer</a> I found out that Ripple uses a different base58 alphabet from Bitcoin. There aren't many materials on what that alphabet is, but I managed to find <a href="https://ripple.com/wiki/Encodings" rel="nofollow noreferrer">this reference</a>:</p>

<blockquote>
  <p>The base58 dictionary for ripple is: rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz</p>
</blockquote>

<p>I am wondering - why is Ripple's alphabet so bizarre in comparison to Bitcoin's base58 alphabet:</p>

<blockquote>
  <p>123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz</p>
</blockquote>

<p>I understand that for some branding reasons one would want to put "r" as a letter for 0 and use 0 as network byte for Ripple (thus making every address start with "r"), but the same could've been accomplished by simply shifting the alphabet like so:</p>

<blockquote>
  <p>rstuvwxyz123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopq</p>
</blockquote>

<p>What is the logic behind the odd alphabet letter order?</p>

CC BY-SA 3.0
2013-10-28T21:10:13.027Z
Interestingly, if you look at just the capital letters they are almost in ascending order, as are just the small letters.
Meni Rosenfeld
<ripple><address><standard><encoding>
Why is Ripple's base58 alphabet so weird?
ThePiachu
# Why is Ripple's base58 alphabet so weird?

(Asked by: username_0 on 2013-10-28)

In [this answer](https://bitcoin.stackexchange.com/a/7599/323) I found out that Ripple uses a different base58 alphabet from Bitcoin. There aren't many materials on what that alphabet is, but I managed to find [this reference](https://ripple.com/wiki/Encodings):

> The base58 dictionary for ripple is: rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

I am wondering - why is Ripple's alphabet so bizarre in comparison to Bitcoin's base58 alphabet:

> 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

I understand that for some branding reasons one would want to put "r" as a letter for 0 and use 0 as network byte for Ripple (thus making every address start with "r"), but the same could've been accomplished by simply shifting the alphabet like so:

> rstuvwxyz123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopq

What is the logic behind the odd alphabet letter order?

**Tags:** ripple, address, standard, encoding

> **Comments:**
> **username_1**: Interestingly, if you look at just the capital letters they are almost in ascending order, as are just the small letters.  

---

## 1 answers

### Answer by username_2 on 2013-10-28. Score: 8

I don't know about the rest of the string but I think the leading bytes are ordered that way to make the types of "addresses" be human reconizable.

From a quick look at the source I think the leading characters, `rpshnaf` map like so:

* r = public Ripple address
* p = node private
* s = Ripple secret
* h = ?
* n = node public
* a = address family generator or seed ?
* f = address family generator or seed ?

Of these, wallet owners have seen the r\* and s\* "addresses" and those running ripple will be have seen the n\* and p\* ones.


---

