> For the complete documentation index, see [llms.txt](https://docs.dothype.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dothype.io/architecture/how-it-all-works/minting-flow.md).

# Minting Flow

Regardless of whether you're minting via whitelist, reserved access, or public signature, the registration process moves through the same stages.

### High-Level Flow

1. **Search a name** → Check availability and pricing
2. **Validate eligibility** → Based on mint phase (whitelist, reserved, or public)
3. **Submit transaction** → Confirm duration and pay with $HYPE
4. **Mint NFT** → Registry issues the `.hype` name as an ERC-721 token
5. **Record expiration** → Expiry timestamp is stored in the Registry

The Controller contract orchestrates all of this and ensures only valid requests make it through.

### UX Flow Example

Let’s walk through what happens when a user mints a name:

1. **User connects wallet** to the mint UI
2. **User types a name** (e.g. `artist.hype`)
3. UI checks name availability via `available(name)`
4. UI fetches price for 1-year term via `getPrice(name, duration)`
5. Depending on the phase:
   * If whitelisted: user submits a Merkle proof
   * If **reserved**: contract verifies the address matches
   * If **public**: user signs an EIP-712 message and submits it
6. **Controller processes payment** in $HYPE
7. **Registry mints the name** and logs expiration
8. UI shows confirmation, name dashboard becomes active

### On-chain Processing Summary

Behind the scenes:

* All logic is routed through the [d**otHYPEController**](/architecture/how-it-all-works/dothype-smart-contracts/controller-contract.md)
* The Controller ensures:
  * The name meets eligibility criteria
  * Duration and price are valid
  * Payment is processed and refunded if overpaid
* Once verified, the Controller:
  * Calls the [**Registry** ](/architecture/how-it-all-works/dothype-smart-contracts/registry-contract.md)to mint the NFT
  * Sets expiration timestamp (now + duration)

### Duration and Pricing

All names:

* Must be registered for at least 365 days
* Can be extended in 1-year increments
* Are priced according to character length:
  * 3 characters → higher tier
  * 4 characters → mid tier
  * 5+ characters → base tier

Pricing is in USD and converted to $HYPE using an oracle at time of mint.

### Payment Details

* All mint payments are made in $HYPE
* Overpayments are refunded automatically
* A designated recipient receives mint funds (e.g. treasury multisig)

> No approvals or token swaps needed—users only need $HYPE in their wallet.

### Mint Result

Once minting is complete:

* The user owns a `.hype` name NFT
* It appears in their wallet
* It can be resolved across Web3 using the Resolver
* Expiration is stored and can be extended via renewal


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dothype.io/architecture/how-it-all-works/minting-flow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
