---
# System prepended metadata

title: Hashtag - unstoppable domains research

---

# Hashtag - unstoppable domains research

## CNS (crypto name service)
- unstoppable domains is built on CNS, a crypto name service
    - cns domains are issued as an erc721 token

## CNS Architechture
- **Registry**
    - a map from domain name to wallet owner address and a resolver address
    - there is only one registry contract
    - white listed minters are allowed to mint second level domains
        - can mint new domains
        - can't control domain ownership e.g. approve or transfer domains)
    - domain owners
        - transfer domain ownership
        - set new resolvers
        - mint new subdomains
        - burn domains
    - domain ownership five functionalities available for a domain owner
        - minting - domain owner is assigned to newly minted domain 
        - transferring
            - transfer nft that keeps resolution settings
            - transfer nft the rests resolution settings
        - setting approved addresses
            - gives another address the control over a domain
            - same powers as domain owner
        - burning
            - burns a domain
            - clears all associated metadata and domain records
    - 
    
- **Resolver**
    - smart contract that is used for resolving domains
        - storage of domain records
            - cryptocurrency addresses
            - chat IDs
            - IPFS hashes
    - maps domain namehashes to key value pair dictionaries of records 
    - many versions of resolver contracts
    - in practice a all wallet specific domains are handled by the same resolver contract
    -  [IResolver](https://github.com/unstoppabledomains/dot-crypto/blob/master/contracts/IResolver.sol) interface contract sets the basic funciontality that should be available for the Resolver contract 
    - [NameHashing](https://docs.unstoppabledomains.com/getting-started/domain-registry-essentials/namehashing/#Resolution-CLI) is utilized to make domains identifiable described in [EIP-137](https://https://docs.unstoppabledomains.com/getting-started/domain-registry-essentials/namehashing/#Resolution-CLI)

- **ProxyReader**
    - consolidates resolving of domain and records through registry and resolver into one operation that is called by resolution libs
        - get domain resolver address from registry
        - get records from resolver
    - 


## UNS components
- contains only one single smart contract

- **Registry**

## notes
- Resolution Library or code is used for generating namehashes of domains
- Most likely need a public facing api for interacting with smart contracts
- affiliate system should be included
- token system for resolving their domainnames
- polygon, ethereum
- take a look at DAO

- contracts first
    - tokennomics
        - 25% of sold goes to liquidity pool

- ddns
    - dns network

- wallet ?

## questions for the client
- how is the resolving of hashtag domains currently achieved?
    - also what kind of resoltion do you want to achieve with the hashtag ? 
    - only smart contract resolution ?
    - or network resolution as well ?
- do you have a list record types you want to store on the scs?
- https://github.com/zkWallet/zkWallet-docs