How To Create NFT Domain Names
Domain names map every address or URL that a user types into their browser to a specific IP address representing a server or destination on the internet. The Internet Corporation for Assigned Names and Numbers (ICANN) manages the entire process, and a highly distributed but completely centralized federation of registrars and DNS servers operates it.
You can only purchase and create a traditional domain name for your website or application from a registrar that ICANN has approved. This system works for many users because their browsers (Chrome, Safari, Firefox, Edge, Brave, etc.) are automatically configured to use this single centralized network of domains.
At the heart of any domain name platform is a union between the systems that allow applications to share their information (e.g. websites) and the systems that enable users to perform lookups (e.g. browsers).
For developers building decentralized applications (dApps), such a centralized system is unlikely to be fully satisfactory. The most common path for developers looking for a decentralized alternative is to use one of two well-established providers: ENS or Unstoppable Domains. These providers leverage blockchains and NFTs to manage domain names.
There are many benefits to using NFT-based domain names. They give you the ability to:
- Purchase and own a domain name rather than renting it.
- Manage the domain directly via smart contract on the blockchain.
- Sell or transfer the domain name without centralized permission.
Let’s look at how you can create your own NFT domain name.
Create an NFT Domain Name Using an Existing Provider (.crypto, .coin, .eth, Etc.)
The easiest way to get started is to use an existing provider. The two most popular are:
Minting a .eth NFT Domain Name Using ENS
ENS uses a two-stage registration process, requiring two transactions on the blockchain.
- Connect your wallet (make sure you’re connected to Ethereum mainnet for real transactions).
- Choose a domain.
- Request to register (on-chain transaction).
- Complete registration (second on-chain transaction).
Once the one-minute waiting period has passed and both of the transactions have been confirmed, you’ll be the proud owner of your own .eth domain name. This domain name is completely managed on the blockchain and will work everywhere .eth domains are supported. Your domain name is a valid ERC721-compliant NFT.
Most applications (regardless of chain) are configured to perform lookups on Ethereum mainnet, and this is where your NFT is stored.
Currently, .eth domains are supported on Opera and Brave (once you’ve enabled them in your settings), through most crypto wallets, and on content networks like IPFS.
Minting a .crypto NFT Domain Name Using Unstoppable Domains
Another popular network for NFT domain names is Unstoppable Domains. Unstoppable Domains charges based on length and top-level domain (TLD). Prices are fixed in USD, and the minting process is handled behind the scenes centrally by Unstoppable Domains and several off-chain verification and payment processes.
Here’s how to mint an NFT domain name through Unstoppable Domains:
- Choose a domain.
- Place the domain in your cart.
- Create an account.
- Purchase the domain using USD (via Stripe).
- Verify and choose your wallet (verification via email).
- Mint your domain name and attach it to your wallet address (via the web interface).
Your NFT will be stored on Polygon and owned by the selected address. Similar to .eth domains, users will only be able to use your domain after installing a browser extension or enabling the appropriate setting in Opera or Brave.
You may notice that both of these approaches use a centralized provider (ENS or Unstoppable Domains) that must be manually integrated into every application that performs DNS lookups. This is a fundamental challenge for fully decentralized systems.
To address this challenge, you could build your own NFT domain name system from scratch and issue as many domain names as possible. You could even issue domains with overlapping TLDs such as .com or .eth. The problem is that you would then need to build and maintain the system and and drive users to adopt your lookup system using a browser extension or through a custom integration into every application your users expect to use.
The challenge of achieving universal adoption for a domain name system drives most users to centralized distributed systems and proven tools like the ones they rely on every day. Still, NFT-based domain name systems ensure that the control and management of their domains is in the hands of users, and new decentralized systems are free to grow and change.
Now that you have your own NFT domain name, you can attach it to a website or Web app using IPFS by setting the Content property of your domain to the full IPFS hash of your content (ipfs://<hash>) in ENS or by attaching your IPFS hash within the Unstoppable Domains web interface. You an also look for domains on the open market using a marketplace such as OpenSea.