An address space & identity system for Urbit

Github ↗
Etherscan ↗


What is Azimuth?

Azimuth is a general-purpose PKI ("public key infrastructure") that Urbit uses as an identity system. This system is implemented as a suite of smart contracts on the Ethereum blockchain, and it determines which Ethereum addresses own which Urbit planets, stars, or galaxies. In Arvo, a single identity is called a "ship," whereas in Azimuth, a single identity is called a "point."

What are stars, galaxies, and planets?

Azimuth points come in three classes: galaxies, stars, and planets. The length of a point's name will tell you its class. Galaxies are 8-bit and have names like ~mul. Galaxies issue 16-bit stars (~dacmul), which can themselves issue 32-bit planets (~laptel-holfur).

Planets are intended for everyday use by individuals, and there are 4.3 billion of them (2 to the 32nd power). Stars and galaxies, on the other hand, are meant to act as network infrastructure: on the Arvo network they provide routing and are responsible for distributing software updates.

How many planets, stars, and galaxies are active?

The raw data on most Azimuth events that have occurred can be found here. We’re currently working on generalized tooling for viewing these events.

You can also inspect and execute functions in the ecliptic.eth contract on Etherscan.

What are comets and moons?

In addition to the three classes of Azimuth points mentioned above, there are two other kinds of Urbit identities that are not registered on Azimuth.

Moons are 64 bits, issued by planets, and have names like ~doznec-salfun-naptul-habrys. Moons are meant for connected devices: phones, desktops, smart TVs, digital thermostats, and other IoT devices. Moons are subordinated to their parent planet.

Comets are 128 bits and have no parents. They can be launched by anyone. They are temporary, disposable identities. Being disposable and essentially unlimited, they will likely not be trusted by default by others on the Arvo network, though you shouldn't have any problem until the network grows much larger. They have long, hard-to-memorize names, like ~racmus-mollen-fallyt-linpex--watres-sibbur-modlux-rinmex.

What is a @p? Why is my username generated for me?

A @p (pronounced pat-pee) is a name like ~zod or ~lodled-ritrul composed of pronounceable, three-letter phonemic elements like zod , lod, leb, rit and rul. Shorter names, such as ~zod and ~marzod are assigned to ships with special duties on the Arvo network (stars and galaxies, respectively. Longer names like ~palfun-foslup are identities for typical users.

These names map directly to a corresponding number in the urbit address space. Galaxies occupy the 8-bit address space, so any galaxy is actually a number between zero and 255. Stars occupy the 16-bit address space, and planets occupy the 32-bit address space.

Can I change my @p?

Unfortunately not, since there is a 1:1 mapping between name and point.

How do I get an identity?

You can either find someone to give you one, or try an ERC-721 (NFT) exchange (Google or Twitter should help you with this). This will probably involve a purchase and a transfer to an Ethereum address that you own. We recommend using Bridge to access the address that the point is transferred to.

If you don't want to use Bridge, a tool like Etherscan will allow you to execute functions in the ecliptic.eth contract.

How do I transfer an identity to someone else?

Access the Ethereum address that holds the point you wish to transfer via Bridge.

What is the best way to access Azimuth?

We recommended using Bridge for all Azimuth-related operations. It’s great for managing your points, as well as for viewing information about points you don’t own.

We have seen third-party hosted versions hosted versions of Bridge online. We strongly recommend avoiding these websites as they may compromise your security and privacy.