> For the complete documentation index, see [llms.txt](https://docs.sns.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sns.net/intro/sns-vs-ens.md).

# SNS vs. ENS

**How Sonic Name Service differs from Ethereum Name Service**

While SNS and ENS share the same vision — decentralized identity and naming — their architectures diverge significantly to meet the evolving demands of high-performance L2s and modern dApps.

This page breaks down the technical and practical differences between **SNS** (Sonic Name Service) and **ENS** (Ethereum Name Service).

### 🔧 Architecture Comparison

| Feature                        | **ENS**                                                | **SNS**                                                                                                                                |
| ------------------------------ | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| **Domain Representation**      | ERC721 NFTs                                            | ERC721 NFTs                                                                                                                            |
| **Storage Structure**          | Multiple contracts (ENS Registry, Resolver, Registrar) | Modular contracts with centralized `Ledger` for packed metadata — drastically reduces gas and storage via efficient bit-level encoding |
| **Metadata**                   | Mostly static, rendered off-chain                      | Fully dynamic, rendered via on-chain state + `MetadataRenderer`                                                                        |
| **Subdomain Ownership**        | Full ownership of subdomains                           | Full ownership of subdomains + Root domain owner assigns *users*                                                                       |
| **Fee Routing**                | Hardcoded per contract                                 | Controlled via `FeeController` (upgradable)                                                                                            |
| **Blacklist / Reserved Names** | Not enforced at core level                             | Controlled via `ListController`                                                                                                        |
| **Referral System**            | Not natively supported                                 | Built-in multi-level referral logic (up to 3 levels)                                                                                   |
| **Reseller Support**           | None                                                   | Native `ResellersHub` with metadata, payouts, and commission tracking                                                                  |
| **Claiming Revenue**           | No fee redistribution                                  | SNS token holders can claim protocol revenue via `RevenueDistributor`                                                                  |

### ⚡ Performance & Cost

| Feature           | **ENS**                       | **SNS**                                  |
| ----------------- | ----------------------------- | ---------------------------------------- |
| **Chain**         | Ethereum mainnet              | Sonic (ultra-low fees, ultra-high speed) |
| **Calldata Size** | Higher (e.g., `.eth` vs `.s`) | Smaller (`.s` TLD = fewer bytes)         |
| **Gas Costs**     | High (due to Ethereum L1)     | Minimal (optimized for Sonic)            |

### 🧱 Composability

| Category                     | **ENS**                 | **SNS**                                             |
| ---------------------------- | ----------------------- | --------------------------------------------------- |
| **Upgradeable Core Modules** | Limited                 | Modular, upgradeable via roles                      |
| **Custom Resolvers**         | Supported               | Planned via `Pointer` system (standard & subgraph)  |
| **DAO Integration**          | Optional, external      | Core to revenue distribution and governance         |
| **Protocol Incentives**      | Mostly organic adoption | Built-in rewards for builders, referrers, resellers |

### 🔐 Security & Control

| Feature                       | **ENS**                | **SNS**                                                    |
| ----------------------------- | ---------------------- | ---------------------------------------------------------- |
| **Ownership Model**           | NFT-based              | NFT-based                                                  |
| **Expiration & Grace Period** | Yes                    | Yes (customizable via `Ledger`)                            |
| **Permission Roles**          | Limited (mostly admin) | Granular (`AGENT_ROLE`, `BALANCE_MANAGER`, etc.)           |
| **Reentrancy Protections**    | Varies by resolver     | All modules protected (e.g., `claim`, `receiveCommission`) |

#### 🏷 Ownership Model

| Feature                | **ENS**                                                                                                | **SNS**                                                                                           |
| ---------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
| **Domain Ownership**   | Stored in the ENS Registry contract, not tied directly to the NFT                                      | **Directly tied to the DotS NFT** — NFT owner **is** the domain owner                             |
| **Ownership Transfer** | Transferring the NFT **does not** update ENS Registry automatically — requires additional transactions | Transferring a DotS NFT **automatically transfers domain ownership**, no updates needed elsewhere |
| **Ledger Design**      | Registry holds ownership info, separate from metadata/resolver                                         | **Ledger stores only metadata**, not ownership — full separation for efficiency and clarity       |
| **Model Type**         | Coupled: Registry + NFT must stay in sync                                                              | **Decoupled**: DotS NFT = single source of truth for domain ownership                             |

***

### Summary

| **ENS**                                  | **SNS**                                                  |
| ---------------------------------------- | -------------------------------------------------------- |
| Mature and widely adopted on Ethereum    | Fresh, modular, and optimized for L2-native applications |
| `.eth` domains with legacy compatibility | `.s` domains with tiny calldata and fast resolution      |
| High gas costs limit experimentation     | Built for speed, scale, and composability                |


---

# 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.sns.net/intro/sns-vs-ens.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.
