๐Domain Ownership, Token Management and Transfers
Ownership
Ownership of ZNS domains is split between two entities: the domain's record in the ZNSRegistry
contract and the domain's token in the ZNSDomainToken
contract with the owner in ZNSRegistry
being the true, canonical domain owner that can override certain token operations. Each of these components can be assigned to the same address, or to two (but no more than two) different addresses:
Owner of the Name/Record/Hash -
owner
value in the record stored inZNSRegistry
. This value is used for access control in important domain management functions.Owner of the Token -
ownerOf(tokenId)
in theZNSDomainToken
contract. This is a standard ERC-721 token ownership pattern, and represents ownership of the domain token's associated NFT.
This divide in ownership is done by ZNS to support smart contract systems and other use-cases on top of ZNS domains. Owners of any level of domain can implement their own smart contracts that manage subdomain distribution or any number of other functions. Owners can split ownership by setting a domain record owner in ZNSRegistry
to a specific contract, while keeping the domain's NFT in a wallet. This can also be done with other accounts to allow separate entities or users to manage important domain functions -- as in a DAO structure -- without giving up actual ownership of the domain. Operators can be used for this use-case as well.
Domain token could potentially be "assigned" to an arbitrary account that could use it in other applications, while the canonical owner keeps his rights and can retrieve it or move it at any time.
Only the Canonical Owner (owner of the
ZNSRegistry
record) is the righteous owner of the domain itself.Token owner is NOT a canonical Domain Owner, but rather a Domain User.
A Canonical Owner can always override token ownership rights for any account.
Token Assignment
On top of al the standard ERC-721 transfer functions, ZNS also implements Token Assignment functions that allow a canonical owner of the domain record to freely transfer domain token from any wallet to any wallet without the current domain owner approval. ZNSRootRegistrar
is responsible for this logic and is the only place where this could be invoked by the canonical domain owner. Since the record owner is canonical and supersedes any other ownership, it has rights to give token to any wallet and take it back at any time by himself without any participation of the account which currently holds the token.
This feature is available to any canonical domain owner (of record/hash in ZNSRegistry
) and can serve multiple use-cases. Here are some of the simple examples:
Employee accounts in a company. This is akin to having an email account per employee. The company wants to keep the right to issue and revoke any employee accounts upon hiring or leaving the company.
Personal asset/wallet management. A user may want to keep their ownership in a cold wallet, but use certain features of ZERO or 3rd party applications that only use token ownership as an access key or for any other logic. One could send this token to their hot wallet address without risk, since their canonical owner account can always retrieve the token at any time.
A canonical owner of any domain in ZNS (owner of the record/hash in ZNSRegistry
) has the rights to send the token from any account to any account at any time.
If a domain token has been sent to you WITHOUT ownership of the domain itself (in ZNSRegistry
) you DO NOT own the domain, you were just allowed to use the token.
Domain Token Sales, Purchases and Transfers
ZNS domain tokens are standard ERC-721 tokens -- NFTs -- meaning they are salable and transferrable like any other NFT on platforms and exchanges that support the ERC-721 standard. Both purchased and received (as from a transfer) ZNS domain tokens will automatically make you the new canonical owner of the domain in ZNSRegistry
as well. In the event that the domain in question was registered via ZERO's stake-to-mint paradigm, the new owner will also inherit ownership of the stake.
Only the account that holds both: record and the token can transfer the token.
Every ERC-721 standard domain token transfer will transfer ownership of BOTH: not only the token itself in
ZNSDomainToken
, but also the ownership of the domain, record and hash inZNSRegistry
!The need for domain reclamation (from v1) has been removed. Domains do NOT need to be reclaimed after purchase or transfer anymore.
Domains owners that have acquired a new domain via purchase or transfer will inherit all subdomain distribution rules from its previous owner, as well as pricing and payment configs and Resolver records. New subdomain owners can and should change these rules if desired; though existing children domains are fully emancipated and will remain unaffected by altering these configs, future child subdomains will. Please note that new owners of a parent domain will only be paid for new child subdomain registrations under their domain after they have set all the necessary distribution configs and set their specific beneficiary
address that will receive the payments (see ).
Last updated