# 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                |
