# Core Smart Contracts

## Overview

The Hyperliquid Names protocol uses the namehash algorithm from ENS, but does not follow the ENS architecture. Like ENS, it handles forward and reverse resolution, but does not attempt to achieve 100% technical parity onchain with general DNS.

## Hyperliquid Names (ERC721)

Hyperliquid Names is the ERC721 smart contract responsible for ownership, transfers, and resolving addresses or primary names. `.hl` names are converted to their namehash using the [ERC137 namehash algorithm](https://eips.ethereum.org/EIPS/eip-137#namehash-algorithm) and its used as the unique tokenId.

## Registrator (current: V1)

The Registrator smart contract is responsible for expiration and text records. New Registrators can be deployed and be automatically understood by the Hyperliquid Names smart contract through the Router. This allows us to both add new functionality to the protocol without limitations and ensure backwards compatibility. Additionally, the Registrator handles issuing of new names and reissuing expired names.

## Router

The Router smart contract handles versioning of the Registrator. It is mainly used by the Hyperliquid Names smart contract to lookup the latest Registrator.&#x20;


---

# Agent Instructions: 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://hyperliquid-names.gitbook.io/hyperliquid-names/smart-contracts/core-smart-contracts.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.
