Getting Started With ArchID
Here we'll discuss ArchID's mission and value proposition for Archway Network. If you're a developer, and would rather learn by example, hop straight into the CosmWasm or JavaScript docs.
What is ArchID?
ArchID is a web3 Domain Name System (DNS) built for Archway Network. When someone asks you who you are, you don't answer with the number on your ID, you use your name. ArchID is who you are in Archway, a name for your address and so much more.
We're familiar with using web2 DNS for websites, it allows us to type archid.app into the URL bar of our web browser instead of the IP address 100.27.31.224.
Web3 DNS provides a similar service for blockchain addresses. When you're sending funds, instead of typing a canonical chain adddress like archway1n7d4c52knwqqkw9j975ranknkp4fn3we0unrp6, you can send to a memorable address like archid.arch.
Sending to an ArchID address will soon be supported in Cosmostation and Leap wallets.
Why Another Web3 Name Service?
Sure, you’ve heard of Starname and ICNS for Cosmos. You’ve looked at ENS and Unstoppable Domains on Ethereum and Polygon. Does the metaverse really need another domain name service?
We believe yes, and here’s why. What makes ArchID special is its core features which are not available from other web3 name services. These features are:
- NFTs with updatable metadata
- Support for subdomains
Updatable NFTs
Most web3 name services use NFT assets to represent domain ownership. The drawback is, once a domain NFT has been created, it must be burned and re-minted each time the domain record needs to be modified.
The problem this presents is web3 domains, like web2 DNS records, are records that expire and need to be renewed periodically. However, burning an expired domain NFT, and re-minting it with a new expiry date, is costly for the end user because of its inefficient gas usage. It’s also a strange and counter intuitive experience. Since renewing ownership is a destructive practice, you need to wait until the domain is actually expired before paying for renewal (otherwise, you’d be burning your NFT too early, and not getting the full value of your registration purchase).
Until recently, there was no standard for updating the metadata of an NFT. Most NFTs store their metadata on IPFS (not the blockchain), which is immutable data, anyway. ArchID NFTs (AID) make use of CosmWasm's cw721-metadata-onchain package, which enables storing NFT metadata on the blockchain. We also use an extension called cw721-updatable which enables approved token operators to update the metadata of any AID token.
ArchID domains can be updated, extended and repeatably customized by their owners for minimal gas fees. ArchID domains don’t need to be burned unless an expired domain is purchased by a new owner. The burden of increased gas fees for burning tokens, only effects buyers taking an expired domain away from a previous owner.
Subdomains
In web2 DNS, it's normal for records to be customized. In addition to customizable entries, it’s common to create subdomain records which share an expiry time with their top level domain. ArchID has full support for subdomains.
Just like top level ArchID domains, subdomain avatar images, domain resolution, and domain description can be updated by their token owner, and ownership of the subdomain can still be transferred to someone else just by sending them the AID NFT.
Unlike top level ArchID domains, subdomain profile information such as GitHub and Twitter accounts, and email and website addresses, cannot be added. Subdomains also can’t mint other subdomains.
ArchID for Developers
ArchID was built with developers in mind. Developers can leverage the following subdomain workflow for their applications:
- Create a top level domain using the address that deployed the dapp smart contract
- Create a subdomain that resolves its domain record to the dapp smart contract address. You can retain ownership of the subdomain NFT in case you ever want to invalidate or modify the subdomain record.
- Under Websites & Apps, add a website to the top level domain. Point the domain record for this website to the subdomain you created in step 2.
After performing the above steps, users looking up, either your contract addresses or account address, can find your domain and subdomain records. This can help verify you as the creator of the project. It provides a safe way to link your dapp website with a smart contract address, and share external links to your GitHub and social profiles.
You can also update any information if it becomes invalid. For example, in the extreme case of an account compromise. If you Archway private key is secure, you can update or remove any compromised accounts that were previously associated to your domain.
CosmWasm Integrations
For integrating ArchID support in your smart contracts see the Contract Developer Docs.
Web App Integrations
For integration ArchID support in your apps and websites see the Dapp Developer Docs.