In a previous post, I covered how to set up an ENS domain on the Ethereum blockchain. Today, I'm going to discuss a similar outcome, but for Solana - the (self-professed) fastest blockchain in the world. If you need a quick primer on DNS or ENS, check out my previous post. If you want to explore other networks, check out the complete guide to Web3 domain registrations.
What is Solana Name Service?
Bonfida is an ecosystem of products for Solana which includes the Solana Name Service (SNS). Much like ENS for Ethereum or DNS in the Web2 world, SNS is a service that allows mapping of human-readable names (e.g.
YourDomain.sol) to a Solana address. The on-chain data can also include text, images, IPFS CID, Arweave address, BTC/ETH public keys and so on.
A key difference between Solana and Ethereum is that Solana domains are registered for life, while Ethereum domain registrations must be renewed annually. An obvious downside to this approach is domain squatting. While not really a deterrence, SNS uses a 7-day public auction system (with a 20 USDC minimum bid price) as a safeguard mechanism. It's effectiveness is questionable though - non-early adopters have absolutely no idea of ongoing auctions for domain names that match ones they own in the Web2 world. It is also interesting to note that SNS has chosen USDC for payment instead of its native token (FIDA) or SOL itself. This brings us to the Solana wallet.
Set up Your Solana Wallet
To get started, you'll first need a Solana wallet with some funds to buy and register the domain name. I recommend Phantom wallet for your browser. Once you download it, create a new wallet. Make sure to review and store the secret recovery phrase in a really secure location - this is literally the key to your Solana kingdom. Create a password, accept the terms of service and off you go. Well, almost.
Once your wallet is ready, you'll need to fund it. If you already have USDC in either a self-custodial wallet like Trust or a crypto exchange like FTX, send some to your Solana address. Note that this must be USDC issued on Solana, which is unfortunately not supported by most exchanges yet. If this is not an option, head over to Binance, Gate.io or Coinbase (or a crypto exchange of your choice) and create an account first. Use a credit card or bank/wire transfer to fund your account and buy some SOL. Next, send the SOL to your Solana address and wait for confirmation. Once your Phantom wallet is funded, swap some SOL for USDC. You'll need at least 20.01 USDC, but may need more if your desired domain is already being auctioned.
Register and Configure Solana Domain
Head over to Solana Name Service and search for your desired domain. If the domain is already registered, you'll see information like TLD, parent name, domain name, domain owner and content. If the domain is available but under an auction, you'll see the bid details and have the opportunity to bid yourself.
If you're in luck and the domain is available, connect your Phantom wallet.
Phantom and click
Connect on the Phantom wallet pop-up to approve transaction requests from this site. Next, click
Register on the SNS page to start the registration process.
Next to create an auction for the domain, and click
Confirm to proceed.
You'll now be taken to the domain auction and be able to place a bid by clicking on
Bid. Approve the transaction in the Phantom wallet to proceed.
The auction will last for 7 days - you may want to periodically check if you are being outbid. If there are no other bids, you'll win the auction and have to claim the domain by clicking on
Finally, you'll have to select the storage size for your Solana account - generally, the lowest option (1kB) should be sufficient for most users. Congratulations, you now own the Solana domain!
SNS Domain Attributes
SNS is compatible with the semantics of DNS - each domain name can hold associated records, which can be used to facilitate reverse lookups. Records are functionally identical to subdomains, and it is possible to transfer ownership of specific records to other users. Let's look at some of the Web3-specific records in the SNS domain:
IPFS: Contains an IPFS CID
ARWV: Contains an Arweave address
SNS: Contains a Solana naming service URL for redirection
SOL: A Solana public key
ETH: An Ethereum public key
BTC: A Bitcoin public key
Well, there you have it. Your Solana domain is now fully configured and ready to be used in wallets, dapps and a plethora of other Web3 resources.
If you found this fun, here are a couple of other things that you can do.