The AZERO.ID Protocol comprises multiple ink! smart contracts, each with different responsibilities.
|Router||Top-level router for registry & domain resolving|
|Registry||Main domain registry|
|Name Checker||Domain charset & length validator|
|Fee Calculator||Domain fee determination|
|Merkle Verifier||Merkle tree whitelist verifier|
All smart contract deployment addresses and metadata can be found here.
Router contract acts as a central hub for managing and routing requests within the AZERO.ID system.
It maintains the mapping relationship between top-level domain (TLD) and their corresponding registration contract addresses.
Additionally, it acts as a universal domain and address resolver that forwards queries to their respective
Registry contracts depending on the TLD.
Registry contract serves as a decentralized domain registration system, where each registry represents a distinct top-level domain (TLD), which can have alias TLDs associated with it.
This contract offers various essential functionalities, including:
- Registry: Registry a specific domain.
- Transfer: Transfer the ownership to another address.
- Release: Release a domain from registration.
- Set primary domain: Set the primary Domains of an address.
- Set resolver: Set the resolving address of a domain.
- Set controller: Set the controller address of a domain.
- Update records: Controllers and Owners can update the records.
- Check domain status: Get the current status of a domain.
In addition to that, the
Registry contract also implements the PSP34 (opens in a new tab) standard, as well as the
Name Checker contract validates domain names at registration, cross-checking them with accepted charsets and validity rules. Its configuration, including allowed Unicode and length boundaries, can be updated by the controlling multisig.
Fee Calculator contract is responsible to determine the fee upon domain registration, which depends on the domain character length and registration period. Additionally, the fee can be deducted by the
Registry contract if a valid domain is passed as a referrer.
Merkle Verifier contract is a custom Merkle tree implementation that is used to efficiently store all 40k+ whitelisted addresses taken from last year's testnet participation. Read more about our whitelist phase.
Registry transitions from the gated whitelist phase to public mode, the
Merkle Verifier contract will no longer be used. However, it remains valuable as a potential resource for future implementations.