Namespace
Namespace is a platform that enables searching and registration of ENS names and more importantly, available subnames from existing second-level names, allowing people to easily secure their web3 ID. Additionally, the core value proposition lies in providing ENS name owners with an advanced toolset to manage and issue the subnames from their ENS names. Owners have the ability to customize issuing these subnames by either selling them or giving them for free, leveraging the inherent value of subnames as NFTs.
Project Scope
At the moment, Namespace has two primary focus points:
- Namespace Manager – a place where ENS name owners will be able to use their names for variety of purposes (use cases).
- Search and Registration – front end allowing anyone to easily secure any .eth name or a subname from all listed second-level names.
Namespace Manager
Currently, Manager supports the “Selling Unruggable Subnames” use case that comes with preselected fuses that get burned when listing the name along with a set of features and functionalities Name owners get to customize to their needs.
Some features include:
- Minting price: Customizing minting price for base price, 2, 3, 4, and 5-letter subnames. Additionally, if left at 0, subnames will cost 0$ to mint.
- Reserving subnames: Reserving specific subnames for yourself that you can use any other way that you want depending on the name that you are listing
- Time-bound selling: the ability to sell certain subnames for a limited period of time in the future.
-
Whitelisting:
Option a) Only the whitelisted wallets can mint a subname
Option b) Only the whitelisted wallets can mint a subname for free
Search and Registration
Currently, Search and Registration offers the ability to register any available second level .eth name. But more importantly, it displays subname options for the latest 5 listed names with the mint price that had been set by their owners if the searched second-level name is not available.
What we shipped
List of deliverables shipped during last 9-10 months
-
General:
- Sign-in-with-Etherum implemented
- Thorin design revamp - the entire platform
-
Namespace Manager:
- ENS wallet design profile
- Namespace user profile
- Dashboard and key metrics display
- Profile set up
- Display of ENS names and subnames
- Display Wrapped and unwrapped names
- Basic info about names and subnames
- Namespace Manager supports “selling uruggable subnames” use case
- Listing names to be available to mint subnames from
- Bulk listing
- Subname mint price customization
- Base price, 2, 3, 4, and 5-letter subname price setup
- Reserving subnames
- Excluding certain subnames from being mintable and reserving them for the owner to keep or resell at higher price or gift to someone etc.
- Time-bound minting
- ENS subname minting available during certain period of time
- Whitelisting (two options for now):
-
- Only whitelisted wallets can mint
-
- Whitelisted wallets can mint for free
-
- Updates and edits on the already listed names
-
Registration page:
- Discover free or registered names
- Register ENS names
- Search all Listed names
- Search for available subnames from listed names
- Register ENS Subnames
- Set as primary name during registration
-
ENS name page
- Ability to mint subnames from official Name page
- Basic profile
- Text record setup
- Subname holder benefits text record added
Contracts overview
The following contracts are used to enable the Namespace workflow:
- NameRegistry
- Contains ENS name listings, for which subnames will be minted
- WhitelistRegistry
- Contains the whitelisting configuration for listed ENS names
- ReservedRegistry
- Contains the reserved name configuration for listed ENS names
- NameMintingRegistrar
- Provides the functionality to add, update and remove listings stored in the registries
- RegistrarProxy
- Contains approvals given to the NameMintingRegistrar to access the registries
- NameMintingController
- Provides the functionality to mint subnames
- NameWrapperDelegate
- Gets approved to execute and delegate calls to NameWrapper
Contract Execution Workflow
Contracts are executed as illustrated below.
- Upon signing in, the first step is for the ENS name owner to access their account by navigating to Namespace Account and give NameWrapperDelegate the approval in NameWrapper. This way NameWrapperDelegate can set the fuses and mint the subname record.
- The next step is to call RegistrarProxy which sets the approval to allow the NameMintingRegistrar to access the ENS name owner’s listings in the registries. The initial call of the RegistrarProxy will also execute the initial name listing.
- Subsequent listing transactions such as adding, updating, and removing listings can be done by directly calling NameMintingRegistrar, which now has the approval to access the owner’s listings in the registries.
- Finally, once the names are listed anyone can hop on the registration page at Search & Registration. Upon searching for available subnames, the minting process is executed by calling NameMintingController. NameMintingController makes the delegated setSubnodeRecord() call to mint the subname, and the updateMintedListing() call on NameMintingRegistrar, which updates the registries upon the successful subname mint.
Future plans
- Introducing more features to enrich the user experience with more tools.
- Implementing renting after the SubnameWrapper contract is published developer by Premm.
- Enabling all of our tools and features for DNS names by utilizing CCIP
- Create a use case specifically for communities and provide custom tools for them