And overview of (and deep dive into) all the operations that can be performed in ZNS
Two components comprise domain ownership in ZNS: ownership of a domain's ERC-721 token (the Ethereum NFT standard) and ownership of a domain's record in the ZNSRegistry smart contract. The former confers 'true' domain ownership, while the latter can be delegated to another account -- called 'operators,' see below -- to perform domain management functions or interact with third parties while preserving the security and autonomy of the domain's token.
ZNS domain token owners that have delegated ownership of their domains record to another account can perform a process known as domain reclamation to rewrite themselves as the owner of a domain's record in ZNSRegistry. Domain reclamation can only be performed in cases whether the accounts owning the domain's token and its record are different. In such a case, the domain's ERC-721 token owner can, at any time, use the reclaimDomain call to initiate domain reclamation and restore ownership of the domain's record to themselves. This can be done at the UI level in ZERO's Explorer app, as well as at the contract level in Etherscan. For more information on the reclamation process, see Domain Ownership, Reclamation, and Token Transfers and Reclamation.
Like any ERC-721 standard NFT, ZNS domains can be freely bought, sold, swapped, traded, or otherwise transferred between addresses. The transfer of a ZNS domain's token, however, does not transfer ownership of the domain's record in ZNSRegistry with it. New owners of ZNS domains NFT -- acquired via any means outside registration -- are required to undergo domain reclamation (see above) to become the domain's 'full' owner. For more information on token transfers and domain reclamation, see Domain Ownership, Reclamation, and Token Transfers, Domain Token Sales, Purchases and Transfers and Reclamation.
ZNS domain owners can forfeit ownership of their domain at any time by way of a process known as domain revocation. Revoking a domain burns its associated NFT and erases the owner's name from the domain's record in ZNSRegistry. As such, only users that own both a domain's token and its record can call revokeDomain. Revoked domains are available again for registration by anyone immediately after revocation. Existing subdomains under a revoked domain are fully emancipated and are unaffected by the revocation of their parent domain. New child subdomains cannot be minted under a revoked domain, however, until it has been reminted.
Revoking a domain registered via ZNS's stake-to-mint paradigm will refund that stake amount in full to the domain token's owner, exlcuding any associated protocol fees and transaction costs. Revoking a domain registered with a one-time, direct payment will not refund that payment. For more information on the revocation process, see Domain Revocation (Destruction).
As mentioned above, ZNS domain ownership is bipartite, comprising ownership of a domain's token and ownership of a domain's record in the ZNSRegistry contract. Ownership of a domain's NFT is considered 'true' ownership of a domain, while a domain's record can be delegated to a separate account, enabling it to perform domain management functions and interact with third-party applications safely. The account to which a domain's record has been delegated is called an 'operator.' Operators have the ability to update subdomain distribution configs (see Base Distribution Configuration), but cannot perform functions altering domain ownership, like reclamation (see Reclamation), revocation (see Domain Revocation (Destruction)) or transfers of a domain's token. For more information on operators and their capabilities, check out Domain Operations.
The ability to resolve a domain to arbitrary data -- e.g., mapping a ZNS domain to an Ethereum account, or a Github account, or a smart contract address -- is one of the key functions of the ZNS protocol. This turns esoteric hex hashes (e.g., 0xABC123DEF...678Tuv9) into something human readable (e.g., 0://hello) and allows for rich identity management to take place on- and off-chain. At present, ZNS only allows for domains of any level to resolve to Ethereum addresses. In the future this functionality will be greatly expanded on. To learn more about domain content and resolution, see Domain Content and Resolutions and Resolution.