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.
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.
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.
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
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
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
- The 2nd suffix is
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
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.
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?
diris the 11th prefix
wylis 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
- The 8th suffix is
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
binis 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!