DNS record specification
The Solana naming service is designed to be compatible with the semantics of DNS. This means that each domain name can hold a set of associated records, using deterministic key derivation to implement a key-value store.
In practice,let us consider the name foo.sol . If we want to find the domain's A record, containing an associated IPv4 address, then we can find it by querying \0A.foo.sol, with \0 the null character. The specification makes use of the null character prefix in order to differentiate between actual domains and records, which means that it is still possible to use the A.foo.sol with no collision. In addition to this, the special \0.foo.sol is reserved to hold the list of all currently initialized records for a given subdomain.

Envisioned use

In addition to typical dns records (A, AAAA, TXT, MX, etc.), the naming service records can also introduce brand new web3-specific types. The following table will be updated as new protocols are integrated.
Type
Description
IPFS
Contains an IPFS CID.
ARWV
Contains an Arweave address
SNS
Contains a Solana naming service URL for redirection
SOL
A Solana public key (supersedes the parent owner public key)
ETH
An Ethereum public key
BTC
A Bitcoin public key

Composability

Since records are functionally identical to subdomains, it is possible to transfer ownership of a particular SNS record to another user or even to a smart contract. This will be especially useful for domains managed by DAOs.
Last modified 4mo ago
Copy link