.zk Domains

zkSync Name Service(ZNS)
The zkSync Name Service (ZNS) is a distributed, open, and extensible naming system based on the zkSync Era.
ZNS’s job is to map human-readable names like ‘zkSync.zk’ to machine-readable identifiers such as Ethereum addresses, other cryptocurrency addresses, content hashes, and metadata. ZNS also supports ‘reverse resolution’, making it possible to associate metadata such as canonical names or interface descriptions with Ethereum addresses.
ZNS has similar goals to DNS, the Internet’s Domain Name Service, but has significantly different architecture due to the capabilities and constraints provided by the zkSync Era. Like DNS, ZNS operates on a system of dot-separated hierarchical names called domains, with the owner of a domain having full control over subdomains.
Top-level domains, like ‘.eth’ and ‘.ape’, are owned by smart contracts called registrars, which specify rules governing the allocation of their subdomains. Anyone may, by following the rules imposed by these registrar contracts, obtain ownership of a domain for their own use. ZNS also supports importing in DNS names already owned by the user for use on ZNS.
Because of the hierarchal nature of ZNS, anyone who owns a domain at any level may configure subdomains - for themselves or others - as desired. For instance, if Alice owns 'alice.ape', she can create 'pay.alice.ape' and configure it as she wishes.
ZNS is deployed on the zkSync Era and will launch on other networks. If you use a library such as the ensjs Javascript library, or an end-user application, it will automatically detect the network you are interacting with and use the ZNS deployment on that network.