Any existing ZNS domain can be revoked at any time by its full owner -- i.e., the owner of both its domain NFT and its record in ZNSRegistry. A user must own both in order to perform domain revocation. Fundamentally speaking, domain revocation is equivalent to destroying the domain: ownership is forfeited, the domain record in ZNSRegistry is deleted, the associated NFT token is burned, and the domain becomes available again for anybody to register. In the event that a revoked domain was registered via ZERO's stake-to-mint paradigm, the amount of the stake will be refunded in full, though payments made at the time of registration for fees and transaction costs will not be refunded. This is true event for domains purchased on secondary or transferred; the new owner of the domain will inherit that domain's stake (if it was registered via stake-to-mint) and will be able to reclaim that stake in full via the revocation process.
The core domain revocation flow
Upon revocation of a domain registered via stake-to-mint, the original stake amount is refunded to the domain's owner -- regardless of whether they were the original owner -- excluding the applicable fees paid at time of mint.
In the event that a revoked domain has existing subdomains underneath it, those child domains remain emancipated and unaffected by their parent domain's revocation. Still, no new subdomains can be minted under a revoked domain until it has been registered anew. In the interim, the revoked domain's hash is assigned the access type Locked, as shown above illustration. When a new domain is minted with the same name as the revoked domain, the new owner will be able to reset the access type and any other data associated with the domain configuration. Owners of a new domain that had been previously revoked do have the ability to set any of price or payment configuration variables, but this does not affect the ability of existing subdomains to revoke correctly if that was how they was configured when they registered initially under the previous incarnation of their parent domain.
When a new domain is minted with the same name as a previously revoked domain, it will inherit existing subdomains and those domains will be viewed as child domains by ZNS. This is as an artifact of having the same domain name -- and thus domain name hash, see Names and Hashing -- as the previously revoked domain.
To revoke a domain, a user must own both the record in ZNSRegistry as well as the domain ERC-721 token minted during registration in the ZNSDomainToken contract. If the token owner and the owner of the domain's record are not the same, revocation cannot occur. However, a domain's token owner can reclaim ownership of its record via the reclamation process (see Domain Ownership, Reclamation, and Token Transfers). Reclamation updates the domain record, marking the token owner as the record owner. From there, revocation can be invoked successfully.