An intro to Urbit names

urbit live
7 min readApr 29, 2019

--

Photo by Elaine Casap on Unsplash

Maybe you saw one on Twitter. Or maybe you got one in an email a couple years ago, but forgot what it is. ~tarwed-mostun~danlus-nolsyt~bicput-mocpex??

What do these mean and what are they for?

They’re names. More specifically, they’re names of Urbit planets and there are more than four billion of them. Rest assured that their seemingly complex nature is just a facade. Understanding the naming system gives valuable context to lots of things in the Urbit ecosystem.

Before we start, let’s recap the basics of Urbit address space. The primer is a great source for info like this:

  • The Urbit network hierarchy has three levels: galaxies, stars, and planets
  • There are 256 galaxies (that’s 2⁸). Each galaxy issues 255 stars
  • There are 65,280 stars (256 + 65,280 = 2¹⁶). Galaxies and stars can each issue 65,535 planets
  • There are 4,294,901,760 planets
  • 256 galaxies + 65,280 stars + 4,294,901,760 planets = 4,294,967,296 (2³²) total ships
  • Every ship has a unique, pronounceable name

Let’s dig in.

Phonemes

The naming convention is based on a set of three-letter, pronounceable phonemes that follow the pattern: consonant-vowel-consonant.

There are 512 unique phonemes; 256 prefixes and 256 suffixes.

    Prefixes   Suffixes
---------- ----------
0. doz zod
1. mar nec
2. bin bud
...253. mat nel
254. mip nev
255. fip fes

Galaxy names are short. Each one is just a single phoneme from the suffix list. ~zod, ~nec, ~bud, and ~fes are a few of them.

Star names consist of a prefix mated to a suffix to form a six-letter name. ~marzod, ~binzod, ~marnec, and ~mipnev are stars.

Planet names are the combination of two six-letter names like ~doznec-marnec, ~fipbud-binzod, ~binnel-dozfes, and ~mipzod-marfes.

Now let’s dive a little deeper into what really defines a ship.

Azimuth points

OK, so now we know how to spell Urbit names. But who gets to use which name? How are the names related to each other? Those questions are answered by peeling back one more layer of the onion.

The foundation of each Urbit ship is a unique, immutable number between 0 and 4,294,967,295. That number is known as the ship’s Azimuth point. An Azimuth point is a ship’s unique identifier within the Urbit address space and determines important properties like its type, lineage, and name.

Type

The types are straightforward:

  • Azimuth points 0 – 255 are galaxies
  • Azimuth points 256 – 65,535 are stars
  • Azimuth points 65,536 – 4,294,967,295 are planets

The calculation used to determine a ship’s lineage depends on its type, so always confirm that first. Lineage is the set of ships that a ship issues (also known as its children) or that the ship is issued from (its parent).

Lineage: a galaxy’s children

A galaxy can issue 255 stars. To calculate each of those stars’ points we add 256 to the galaxy’s point. Then add 256 again, up to 255 times. The result after each round of addition is the Azimuth point of another one of that galaxy’s child stars.

For example, let’s determine the children of Azimuth point 2:

  • We can confirm that point 2 is a galaxy because it’s between 0 and 255, so we add 256 which gives us 258.
  • Azimuth point 258 is the first child star of Azimuth point 2
  • Next we add 256 to 258 which equals 514
  • Azimuth point 514 is the second child star of Azimuth point 2

We could continue this simple process another 253 times to compile the complete list of child stars for Azimuth point 2.

Lineage: a star’s children

A star can issue 65,535 planets. To determine those planets’ Azimuth points we start with the star’s point and repeatedly add 65,536 to it.

Let’s find the children of Azimuth point 5,636:

  • First confirm its type. Point 5,636 is a star because it’s between 256 and 65,535
  • Adding 65,536 to 5,636 gives us 71,172
  • Azimuth point 71,172 is the first child planet of Azimuth point 5,636
  • Add 65,536 to 71,172 to get 136,708
  • Azimuth point 136,708 is the second child planet of Azimuth point 5,636

Doing that another 65,533 times would yield the complete list of child planets for Azimuth point 5,636.

Lineage: a star’s parent

Determining a star’s parent galaxy is done by dividing the star’s Azimuth point by 256. The remainder of that operation is the parent’s Azimuth point.

To find the parent galaxy of Azimuth point 1,027:

  • Point 1,027 is between 256 and 65,535, confirming it’s a star
  • 1,027 divided by 256 gives a remainder of 3

Azimuth point 3 is the parent galaxy of Azimuth point 1,027

Lineage: a planet’s parent

Planets don’t issue Azimuth points, so there aren’t any children to calculate. However, determining a planet’s parent is quite useful and easily done by dividing the planet’s Azimuth point by 65,536. The remainder is the Azimuth point of the planet’s parent star.

To find the parent star of Azimuth point 66,312:

  • Point 66,312 is between 65,536 and 4,294,967,295, so it’s a planet
  • 66,312 divided by 65,536 gives a remainder of 776

Azimuth point 776 is the parent star of Azimuth point 66,312

Azimuth point ➞ ship name

Galaxies

What do we know about Azimuth point 0?

  • Point 0 is between 0 and 255, therefore it’s a galaxy
  • Like all galaxies, it can issue 255 stars
  • We can calculate its child stars’ points by adding 256 to 0 over and over
  • Its name is one of the suffix phonemes

We still don’t know its name, though. Let’s change that. As you might have guessed, a galaxy’s Azimuth point maps directly to the order of the suffix phoneme list. (Scroll down for a reference phoneme list)

The zeroth suffix is zod, so Azimuth point 0’s name is ~zod.

How about Azimuth points 1, 2, and 3?

  • Azimuth point 1 is the galaxy ~nec
  • Azimuth point 2 is the galaxy ~bud
  • Azimuth point 3 is the galaxy ~wes

Stars

To determine a star’s name from its point, we do the same division operation that we used to determine its parent. This time we will also pay attention to the quotient. The quotient value maps to the star name’s prefix and the remainder to the name’s suffix. A star’s suffix is also the name of its parent galaxy.

What’s the name of Azimuth point 258 and its parent?

  • Point 258 is a star
  • 258 divided by 256 yields a quotient of 1 and a remainder of 2
  • The 1st prefix is mar
  • The 2nd suffix is bud

Azimuth point 258 is the star ~marbud and its parent is galaxy ~bud

    Prefixes   Suffixes
---------- ----------
0. doz zod
1. mar nec
2. bin bud
3. wan wes
4. sam sev
5. lit per
6. sig sut
7. hid let
8. fid ful
9. lis pen
10. sog syt
11. dir dur
12. wac wep
13. sab ser
14. wis wyl
15. sib sun
...253. mat nel
254. mip nev
255. fip fes

Ship name ➞ Azimuth point

Galaxies

Galaxy names come from the suffix list. A galaxy’s Azimuth point is the position of its name in that list.

What is ~sut’s Azimuth point?

sut is the 6th suffix, therefore ~sut is Azimuth point 6.

Stars

Perform the reverse of the operations that we used to find a star’s name from its Azimuth point: multiply the prefix by 256 and add the suffix.

What is ~dirwyl’s Azimuth point?

  • dir is the 11th prefix
  • wyl is the 14th suffix
  • 11 × 256 = 2816
  • 2816 + 14 = 2830

~dirwyl is Azimuth point 2830

Put it all together

We now have the skills to:

  • traverse up and down the network hierarchy by applying basic math to any ship’s Azimuth point
  • convert back and forth between Azimuth points and names

Let’s put it all to use.

What are the names of Azimuth point 262,664’s parent’s closest siblings?

  • Azimuth point 262,664 is a planet
  • 262,664 divided by 65,536 results in a remainder of 520
  • Azimuth point 520 is a star
  • 520 divided by 256 results in a quotient of 2 and a remainder of 8
  • The 2nd prefix is bin
  • The 8th suffix is ful

Azimuth point 262,664’s parent is Azimuth point 520, ~binful

Determine ~binful’s closest siblings’ names the standard way

  • 520 + 256 = 776
  • 776 divided by 256 gives a quotient of 3 and remainder of 8
  • 3rd prefix is wan. 8th suffix is ful. The first sibling is ~wanful
  • 520 – 256 = 264
  • 264 divided by 256 gives a quotient of 1 and remainder of 8
  • 1st prefix is mar. The other sibling is ~marful

Determine ~binful’s closest siblings’ names by simply incrementing/decrementing ~binful’s prefix value by 1

  • ~binful’s prefix bin is the 2nd prefix
  • 3rd prefix is wan. 1st is mar. The siblings are ~wanful and ~marful

That’s it! Hopefully you now have a better understanding for how names work in the Urbit universe.

Whereas stars display their lineage directly in their name’s suffix (e.g. ~marbud is issued from ~bud, ~marzod from ~zod, etc.), to retain a high degree of anonymity and individuality for planets, Urbit’s developers made it difficult to determine which star/galaxy a planet was issued from based on its name alone (without using a computer).

That is one of the many reasons we built urbit.live. Use it to find the name and lineage of any Azimuth point, search for specific phonemes/words, or just surf the network. Most importantly, purchase an Azimuth point to begin your journey into the Urbit ecosystem.

Urbit is one of the most ambitious computing projects ever attempted and the internet needs it now more than ever. Do you actually own your data? How much of your digital experience do you really control? If you haven’t started thinking about those things yet, we implore you to start now. Join us!

--

--

urbit live

Urbit frontiersmen hellbent on improving the digital experience. Creators of Urbit’s largest planet exchange and first network explorer. https://urbit.live