MetaTLDs
Permissionless TLDs and Domains: One Click Away
Created on 30th June 2024
•
MetaTLDs
Permissionless TLDs and Domains: One Click Away
The problem MetaTLDs solves
Project Overview
MetaTLDs is a decentralized platform for TLD (Top-Level Domain) registration and domain management using blockchain technology. It empowers users to create and manage their own TLDs by staking ETH, offering seamless domain registration under these TLDs.
Issues with TLD Registration
High Costs
- Expensive fees: High application and maintenance costs for registering new TLDs.
Lack of Flexibility
- Inflexible policies: Strict policies and restrictions on how TLDs can be managed.
Transparency Issues
- Opaque processes: Limited transparency in the TLD allocation process.
- Developer dependency: Requires developers to deploy contracts for registering new TLDs.
Permissionless TLDs
Open Access
- Decentralized control: Any DAO, protocol, or organization can create their own TLD.
- Community integration: Organizations can accommodate their users or community members with unique domains, fostering a sense of belonging.
Empowerment
- Equal opportunity: Everyone can establish their unique TLD without central authority approval.
Diverse Use Cases
- Versatile application: Suitable for personal, business, community, and protocol-specific TLDs.
Innovation and Flexibility
- Encourages creativity: Promotes innovative domain naming and flexible management.
One-Click Staking and Deployment
Simple Process
- Easy staking: Users can stake ETH and deploy their TLD contract with a single click.
- No developers needed: No need for developers to create complex smart contracts for TLD registration; any user can do it with one click.
Smart Contract Automation
- Automated deployment: Ensures secure and efficient deployment of TLD smart contracts.
Challenges we ran into
One of the significant challenges we faced while building the metaTLDs project was managing the global directory of Top-Level Domains (TLDs) and configuring them in the registry using Merkle proofs to prevent duplicate registrations.
Specific Bug or Hurdle
Managing the Global Directory of TLDs:
Ensuring that no two identical TLDs could be registered was a critical requirement for our protocol. We needed a robust mechanism to verify the uniqueness of each TLD while maintaining an efficient and scalable registry.
Configuring TLDs in the Registry Using Merkle Proofs:
We implemented Merkle proofs to manage and verify the TLDs. The challenge was to correctly configure the Merkle root and ensure the proof verification logic was both secure and performant. Any errors in this logic could have led to vulnerabilities, such as allowing duplicate TLD registrations or compromising the integrity of the registry.
Solution
To address these challenges, we took the following steps:
Global Directory Management:
We implemented a smart contract function
createDomainService
that takes the TLD, its owner, and initialization data to create a new TLD. This function ensures that each TLD is unique by leveraging a Merkle tree structure.Merkle Proof Configuration:
We used the
updateMerkleRoot
function to update the Merkle root, ensuring that the TLDs are correctly configured and verified. This function is restricted to platform administrators to maintain security.Preventing Duplicate Registrations:
The
checkAvailability
function checks if a TLD is available for registration by verifying the provided Merkle proof.Protocol Integration:
To avoid collisions with other domain protocols, we ensured that our SDK integration was seamless and isolated. By adhering to strict naming conventions and unique identifiers, we prevented conflicts with other domain protocols.
Tracks Applied (3)
Coinbase Smart Wallet
OnchainKit
Social Track
SOCIAL with Farcaster
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.