Skip to main content

Domain resolution

Browser resolution#

Adadomains can be resolved in web browsers by using the .surf extension. For example, hello.ada on Mainnet can be resolved by navigating to (on Preprod the equivalent link is

The rules for browser resolution are the following:

  1. redirect to the value of attribute web.ipfs, if present
  2. redirect to the value of attribute web.url, if present
  3. show a default homepage with displayed socials and contact information

Smart contracts#

Smart contracts (validators) can resolve the domain attributes by using the domain UTXOs as reference inputs in transactions.

Below are the Plutus definitions of domain and subdomain datums:

data Domain = Domain {    domainFundsReceiver :: Address,    domainAttributes    :: PlutusTx.AssocMap.Map BuiltinByteString BuiltinByteString,    subdomains          :: [TokenName]}
data Subdomain = Subdomain {    subdomainFundsReceiver :: Address,    subdomainAttributes    :: PlutusTx.AssocMap.Map BuiltinByteString BuiltinByteString}

Domain (and subdomain) attributes are represented as a Plutus map. The only exception is the associated Cardano address, which is stored as a native address type for easier on-chain usage. Domain datum also contains a list of all subdomains belonging to that domain.

Token policies#

These are the official token policy IDs belonging to adadomains NFTs:

  • Preprod network
    • domain policy - 08f134d9e639c6ab0e06644e6889b48e7c281ebe3366a6439b70f375
    • domain ownership policy - 87c3d209c1ff0e25eed4766472dfb6884dd1a7a64c0c1f6bd5fd0ef7
    • subdomain policy - 32e312dda534b51f87f68e687c86b27accea8dc0b4ea8c0ba83f056d
  • Mainnet network
    • presale policy - e2bdb31c13a57d94934d01a4ca17cf3b2cac61d055637261b089c8f6
    • domain policy - 49933b20c73dae19926b4ee0d7330f2c167c53414fa0c8308e2768d6
    • domain ownership policy - fc411f546d01e88a822200243769bbc1e1fbdde8fa0f6c5179934edb
    • subdomain policy - bb92a9fb6f37585d502de854aacc9b7e91269144319ce444c091a590