
How It all Works
A high-level overview of the smart contract architecture and design philosophy that powers dotHYPE.
π§ The Modular Backbone of dotHYPE
dotHYPE is built for a modular blockchain future. Instead of one giant smart contract, we designed a clean, composable system split across four core contractsβeach responsible for a specific piece of functionality.
This modularity gives us:
π Flexibility to iterate without hardcoding everything into one place
π Better security through limited scopes and cleaner audits
π€ Easier integrations for developers and protocols
These components are designed to work independently, but connect seamlessly through permissioned interfaces and shared standards.
π§± Core Contracts at a Glance
Contract
Role
What it Controls
Registry
NFT ownership
Tracks who owns each name, when it expires, and when it can be renewed
Controller
Minting logic
Sets pricing, duration, access, and routes requests to the registry
Resolver
Name functionality
Allows your name to resolve to addresses, text records, content hashes, and more
π How They Work Together
Hereβs the typical mint flow for a .hype
name:
You search for a name on the frontend.
The frontend checks the nameβs status via the Registry.
If available, you sign a minting intent via EIP-712 (handled by the Controller).
The Controller processes the request, confirms allowlist or auction state, and passes it to the Registry to mint.
Once minted, your name can be personalized and resolved using the Resolver.
one is described in detail in the sections that follow.
π Why This Design Matters
Other systems often bundle all logic into one contract or rely on legacy ENS-style routers. We didnβt do that.
Our approach:
β Separates business logic from storage and resolution
β Respects ENS standards where they matter (like resolution)
β Enables protocol-level upgrades and partner modules without rewrites
This structure allows dotHYPE to evolve from a minting system into a programmable identity layer.
π Whatβs Next
Explore the core contracts:
Registry Contract β Tracks ownership and expirations
Controller Contract β Handles minting access and pricing
Resolver Contract β Makes your name usable across Web3
Last updated