Azimuth.eth Reference
Azimuth.eth is used for storing all data related to Azimuth points and their ownership, and should be considered to be the ledger for Urbit ID. This contract is just a data store: it only contains the bare minimum of business logic. See Ecliptic.eth for the contract containing the business logic for this ledger. Azimuth.eth cannot be modified directly by galaxy vote; they are only eligible to modify Ecliptic.eth.
Global state
The global state of Azimuth.eth is given by the following.
// points: per point, general network-relevant point state
//
mapping(uint32 => Point) public points;
// rights: per point, on-chain ownership and permissions
//
mapping(uint32 => Deed) public rights;
// operators: per owner, per address, has the right to transfer ownership
// of all the owner's points (ERC721)
//
mapping(address => mapping(address => bool)) public operators;
// dnsDomains: base domains for contacting galaxies
//
// dnsDomains[0] is primary, the others are used as fallbacks
//
string[3] public dnsDomains;Urbit ID's are formalized as ERC-721 non-fungible tokens and are indexed by a number between 0 and 2^32-1, e.g. a uint32. There are two data structures associated to a given uint32: a Point and a Deed.
Points
PointsA Point contains data about networking keys and sponsorship status, arranged in the following struct:
Deeds
DeedsA Deed says which Ethereum address owns a given Point as well as several proxies for that Point.
Other state
Finally, each Ethereum address may set for itself a number of operators, as defined and required by the ERC-721 standard. These are for third party brokers/wallets/auctioneers/etc such as OpenSea, which facilitate exchange of ERC-721 tokens.
Azimuth.eth also contains some other state—dnsDomains—which are domain names by which the IP address of a galaxy may be looked up, e.g. zod.urbit.org resolves to 35.247.119.159. This is used for bootstrapping the network from DNS. Three domains may be listed here, but as of today they are all urbit.org. This may only be updated by the owner of Ecliptic, but arguably each galaxy ought to be able to set its own domain name and so we do not expect this to remain the case forever.
All data in this ledger is stored and processed locally on your ship by the %azimuth Gall agent, including layer 2 data. Because state transitions resulting from layer 2 transactions are not included in this ledger, in general the local store will differ from what is kept in Azimuth.eth.
Last updated