Domain Records

In addition to typical DNS records (A, AAAA, TXT, MX, etc.), the Solana Name Service introduces brand new web3-specific types. The following table will be updated as new protocols are integrated.

Name
Value

IPFS

An IPFS CID

ARWV

An Arweave address

SOL

A concatenation of a public key and a signature

ETH

An ETH public key

BTC

A BTC public key

LTC

An LTC public key

DOGE

A DOGE public key

email

An email address

url

A website URL

discord

A discord username

github

A github username

reddit

A reddit username

twitter

A twitter username

telegram

A telegram username

pic

A profile picture

SHDW

A Shadow drive address

POINT

A Point network record

BSC

A BSC public key

INJ

A Cosmos (Injective) public key

IPNS

A IPNS CID

Records V1 vs V2

There are notable differences between Records V1 and V2. Records V1 use a derivation prefix of 0x01 and encode their content based on the SNS-IP-1 guidelines. In response to challenges related to data authenticity and staleness issues prevalent in V1, Records V2 was introduced. V2 employs a class in the derivation and a distinct encoding schema detailed in SNS-IP-3. Records V2 incorporates a validation ID system to ensure data integrity and freshness. Importantly, due to the distinct derivation, Records V1 and V2 can co-exist without collisions. However, the goal of the ecosystem is a complete migration to Records V2.

\0 and \1 are convenient notations for:

  • \0 = \x00

  • \1 = \x01

Differences between Records and Subdomains

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 \1A.foo.sol, with \1 the character of code value 1. The specification makes use of this prefix in order to differentiate between actual domains and records, which means that it is still possible to use the A.foo.sol subdomain with no collision.

Last updated