Xeno, a dApp on the Scroll Blockchain, enables communities to easily create/manage decentralized top-level domains (dTLDs) like ".eth" without coding. It offers a user-friendly interface, making dTLD management accessible to all, regardless of technical expertise.
Problem Statement
The Solution Xeno Brings
Xeno empowers communities to effortlessly create and manage custom decentralized Top-level domains that are linked to their wallet addresses on the Scroll Blockchain, without the need for any coding skills.
We provide an intuitive and user-friendly interface that simplifies the process, making it accessible to everyone, regardless of their technical background.
Users can choose between two domain types to create, a Standard domain which is similar to normal domains like ENS/Unstoppable, and a second SBT domain which is non transferable and is bound to the wallet forever.
Xeno streamlines and automates the creation, management, and monetization of decentralized top-level domains, enabling seamless integration into the Scroll Blockchain's infrastructure. The service issues human readable addresses according to the TLD selection.
Users can register custom top level domains such as ".scroll" or ".xeno", and access a minting page where they can mint their choice domain name or share with other community members
We have multiple contracts that all come together to make the dapp work.
We have factory contracts that generates new standard or sbt domain contracts based on user's input. We also added other contracts like the resolver, forbiddentld, onchain metadata contract and the domain hub.
All contracts are deployed and verified on the Scroll Sepolia testnet, and the scroll sepolia rpc is used to fetch details like domain price, default domain, etc.
The frontend was built with Nextjs13, Tailwindcss, Ethersjs, Rainbowkit & Wagmi and the scroll sepolia rpc endpoints.
We initially encountered an issue with fetching all the available created domains from the smart contract, so we had to write custom functions to get each created domain using the scroll sepolia rpc, and then combine it some with js array methods in order to create a list of available domains dropdown. I'm particularly proud of how we were able to implement this.