Identity

Azimuth is a general-purpose public-key infrastructure (PKI) on the Ethereum blockchain, used as a platform for Urbit identities. You need such an identity to use the Arvo network.

Arvo vs. Azimuth

Urbit is a project, not a single computer system. It has multiple components: Arvo, the operating system, and Azimuth, the identity system. Let's compare them.

Arvo is an operating system that provides the software for a personal server. These personal servers together constitute the peer-to-peer Arvo network. To make this network work on the social level, Arvo is built to work with a system of scarce and immutable identities.

Azimuth is the public-key infrastructure built to be a system of scarce and immutable identities. It consists of a suite of smart contracts on the Ethereum blockchain as well as several apps run locally on your urbit. Togeter, they determine which Ethereum addresses own which Urbit ID's as well as the public keys needed to communicate with those ID's. All identity-related operations, such as transfers, are governed by Azimuth. Azimuth isn't built strictly for Arvo -- the smart contracts on Ethereum are sufficient to be used as a generalized identity system for other projects. Azimuth is considered to be the technical nomenclature for the PKI, while Urbit ID is the common nomenclature.

These otherwise-parallel systems meet when you want to connect to the Arvo network. Your Arvo personal server, called your ship, needs to be able to prove cryptographically that it is who it says it is. This proof comes in the form of a keyfile, derived from your identity, that you use to start your ship.

A metaphor might help illustrate the relationship between these two systems: the Arvo network is the neighborhood that you live in; Azimuth is the bank vault that stores the deed to your house.

Smart contracts

Azimuth consists of the following smart contracts:

  • Azimuth.eth 0x223c067f8cf28ae173ee5cafea60ca44c335fecb: contains all on-chain state for Azimuth. Most notably, ownership and public keys. Can't be modified directly, you must use the Ecliptic.
  • Ecliptic.eth: 0x9ef27de616154FF8B38893C59522b69c7Ba8A81c is used as an interface for interacting with your points on-chain. Allows you to configure keys, transfer ownership, etc.
  • Polls: 0x7fecab617c868bb5996d99d95200d2fa708218e4 registers votes by the Galactic Senate on proposals. These can be either static documents or Ecliptic upgrades.
  • Linear Star Release: facilitates the release of blocks of stars to their owners over a period of time.
  • Conditional Star Release: 0x8c241098c3d3498fe1261421633fd57986d74aea facilitates the release of blocks of stars to their owners based on milestones.
  • Claims: 0xe7e7f69b34d7d9bd8d61fb22c33b22708947971a allows point owners to make claims about (for example) their identity, and associate that with their point.
  • Censures: 0x325f68d32bdee6ed86e7235ff2480e2a433d6189 simple reputation management, allowing galaxies and stars to flag points for negative reputation.
  • Delegated Sending: enables network-effect like distributing of planets.

Walkthroughs of some of the smart contracts are linked to below.

General Azimuth Resources

These documents pertain to L1 and other general aspects of Azimuth. For L2 docs, see below.

Naive rollups

In 2021, a new system was introduced to Azimuth called naive rollups, and often referred to as layer 2 or L2. It was intended to reduce gas costs for working with Urbit ID and friction associated with using cryptocurrency in general. This system allows batches of Azimuth transactions to be submitted together as a single transaction using an Urbit node known as a "roller". The PKI state transitions resulting from these transactions are computed locally by your urbit rather than by the Ethereum Virtual Machine.

Due to the dramatically reduced cost, Tlon offers their own roller that is free for ordinary public use. This enables new users to get started with a permanent Azimuth identity without any prior knowledge of Ethereum, cryptocurrency, or blockchains. However, anybody can run a roller, and even using your own ship as a roller to submit single transactions results in significant savings.

L2 operator and developer resources: