Skip to content

V2 docs WIP#543

Open
wentelteefje wants to merge 44 commits into
ensdomains:masterfrom
wentelteefje:feature/ensv2-docs
Open

V2 docs WIP#543
wentelteefje wants to merge 44 commits into
ensdomains:masterfrom
wentelteefje:feature/ensv2-docs

Conversation

@wentelteefje
Copy link
Copy Markdown
Member

No description provided.

wentelteefje and others added 5 commits April 27, 2026 12:54
New pages:
- Architecture: Registry Hierarchy, Enhanced Access Control, ERC1155Singleton,
  Mutable Token IDs, Hidden Contract Accounts, Verifiable Factory
- Contracts: Permissioned Registry, Permissioned Resolver, ETH Registrar,
  Universal Resolver V2, Registry Metadata, DNS Name Resolution
- Guides: Migration, Indexing, Registry Template, FAQ (placeholder),
  Tutorial placeholders for App/Contract Developers

Interactive widgets:
- ID Explorer (Mutable Token IDs page)
- Resource Calculator (Permissioned Resolver page)
- Role Bitmap Composer (Registry + Resolver pages)

Updated sidebar structure: Architecture | Contracts | Guides | FAQ
Updated overview page with deployments table (Sepolia, TBD addresses)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Move ENSv2 to top-level sidebar navigation
- Add FrenCallout component with ENS character PNGs (Earl, Bittu, Kuzco, Lili, Peanut)
- Replace all WIP/not-yet-final notes with Lili FrenCallout tips
- Add Bittu developer tips for resource scheme sections
- Add FAQ page with character callout demos
- Fix DNS TXT record table (correct a[e<chainId>] syntax)
- Remove em-dashes from prose text across all pages
- Add emancipation section to Registry Template and Permissioned Registry
- Restructure ETH Registrar page (v1-style commit-reveal docs)
- Restructure DNS Resolvers page (flow-based, not contract-based)
- Add Reference sections (write/view/events) to all contract pages
- Update overview tables to match current sidebar structure
- Various readability fixes and cross-reference improvements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@hiddentao hiddentao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Migration docs need a lot of work

Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
…ections

  - Replace markdown reference tables with ContractReference on EAC, ETH Registrar, Permissioned Registry, Permissioned Resolver, and Universal Resolver V2 pages
  - Restructure Universal Resolver V2 page to stand on its own (remove v1-centric framing, fix nonexistent resolve(name, data[]) method)
  - Add EAC integration section to ETH Registrar page (ROLE_SET_ORACLE, ROLE_REGISTRAR, ROLE_RENEW)
  - Fix REGISTRATION_ROLE_BITMAP description on ETH Registrar page (list all 5 roles explicitly)
  - Update reverse resolution page for PR 292: replace ETHReverseResolver with ENSV1Resolver, add HCA adapter contracts
  - Update overview deployments table to match (ENSV1Resolver, ReverseRegistrarHCAAdapter, DefaultReverseRegistrarHCAAdapter)
…constants table, add v2 grace period (28 days), fix FrozenTokenApproval condition, clarify token receiver for locked 3LD+, update scenarios to match case study math
@wentelteefje wentelteefje requested a review from hiddentao May 5, 2026 12:14
Copy link
Copy Markdown
Member

@gskril gskril left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking great! Left some comments/suggestions

Comment thread src/pages/contracts/ensv2/overview.mdx Outdated
Comment thread src/pages/contracts/ensv2/overview.mdx Outdated
| [DNS Name Resolution](/contracts/ensv2/dns-resolvers) | Resolving DNS domain names through the ENS protocol |
| [Reverse Resolution](/contracts/ensv2/reverse-resolution) | Primary names and multi-chain reverse resolution |

## Deployments (Sepolia)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessary to move this, but FYI the deployments page is auto generated from the ensdomains/ens-contracts repo which might be useful so we don't have to maintain multiple lists

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sliders don't seem to change any of the values for me

Image

Copy link
Copy Markdown
Member Author

@wentelteefje wentelteefje May 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They even increment in your animation :D

  • tokenVersionId increments the lower 32 bits of Token ID.
  • eacVersionId increments the lower 32 bits of resource.

The canonicalId always zeroes out the lower 32 bits, so nothing changes there and the labelhash is just a constant 256bit hash. But it's good feedback that you didn't even realize them changing. Maybe I should add some visual effect to the values when the slider is used.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh whoops, ya i was looking at the left side 😅

seems maybe weird to display the same value 4 times when only the right side changes, but not a big deal for now

Comment thread src/pages/contracts/ensv2/mutable-token-ids.mdx Outdated
Comment thread src/pages/contracts/ensv2/verifiable-factory.mdx
Comment thread src/pages/contracts/ensv2/eth-registrar.mdx Outdated
- **URv1** walks a flat ENS registry
- **URv2** walks the hierarchical registry tree via `getSubregistry()` at each level

This means `resolve()`, `reverse()`, and all CCIP-Read infrastructure work identically across both versions. The `LibRegistry` library that powers the hierarchy traversal is also used directly by other contracts including `DNSAliasResolver`, `DNSTLDResolver`, and `ENSV2Resolver`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Raffy explained this nicely on a call once that stuck with me and might be worth including in some form. In v1, resolution was bottom-up whereas v2 is top-down.

Used to:

  1. Look for resolver of sub.sub.name.eth
  2. No resolver is set, so try sub.name.eth
  3. No resolver is set, so try name.eth

Now its:

  1. Get resolver of eth
  2. Get resolver of name.eth
  3. No resolver for sub.name.eth, use the one from step 2

This is what allows names to stop resolving after expiration and some other similar fine grained behaviors.

Comment thread src/pages/contracts/ensv2/universal-resolver-v2.mdx
Comment thread src/pages/contracts/ensv2/reverse-resolution.mdx Outdated
ali-rasheed and others added 8 commits May 6, 2026 20:32
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This keeps dev and preview commands consistent with build by resolving the local Vocs binary the same way in every script.

Co-authored-by: Cursor <cursoragent@cursor.com>
This wires custom CSS into Vocs, sets Monument font families, enables the alternate glyph feature globally, and adjusts Tailwind font weight mapping to better match the new type scale.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Greg <35093316+gskril@users.noreply.github.com>
This updates shared style primitives in styles.css and adds a design patterns reference so future UI updates stay consistent.

Co-authored-by: Cursor <cursoragent@cursor.com>
…uage.

This refines border radii and outline density so key interactive surfaces align with the latest docs design treatment.

Co-authored-by: Cursor <cursoragent@cursor.com>
This prevents accidental tracking of machine-local Netlify state during docs development and deploy testing.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/overview.mdx Outdated
Comment thread src/pages/contracts/ensv2/overview.mdx Outdated
Comment thread src/pages/contracts/ensv2/dns-resolvers.mdx Outdated
Comment thread src/pages/contracts/ensv2/eth-registrar.mdx Outdated
Comment thread src/pages/contracts/ensv2/indexing.mdx
Comment thread src/pages/contracts/ensv2/overview.mdx Outdated
RESERVED --> AVAILABLE: unregister() or expiry
```

- `AVAILABLE`: never registered or expired. Open for registration.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it true? Once expired, what stage is it going to be called?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread src/pages/contracts/ensv2/permissioned-resolver.mdx Outdated
Comment thread src/pages/contracts/ensv2/verifiable-factory.mdx
# Hidden Contract Accounts

Hidden Contract Accounts (HCAs) let smart-account proxies act on behalf of their owners while still being attributed to the owner. ENSv2 wires HCA-aware sender resolution into every layer of the stack. When a user controls a name through an HCA proxy, the protocol records the owner as the actor for permission checks, ownership reads, and event indexing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even though v2 doesn't have hard dependency to HCA, it should be worth mentioned that it will be used in combination with https://github.com/rhinestone-external/ens-modules and have some code example

@makoto
Copy link
Copy Markdown
Member

makoto commented May 8, 2026

Hi, I already made comments to individual lines. These are more generic comments to the part it wasn't changed on the PR

  • No Grace period mentioned here is no longer correct.
  • every name gets its own resolver, mentioned here is incorrect. While each name has its own registry, name is per user. Please refer to here for more detail
  • all existing ENSv1 resolvers will continue to work seamlessly in ENSv2. is technically incorrect. The migration contract takes a resolver address to set the resolver in v2 so it's up to the client app. For ENS app, new v2 permissioned resolver will be created and data is migrated to the new resolver at the time of the migration, but please confirm with the frontend team about the exact behaviour.
  • hca.mdx is a bit abstract. There should be a code example section (when hca component is ready). it's also worth noting who is in responsible for creating HCA at what timing as ENS v2 protocol itself doesn't have the HCA creation functionality but it expects to use a single hca factory address across all the HCA wired contracts.

…ame ownership verification checklists to UR2, add missing EAC view functions to PermReg reference, add canonical/locked canonical parent terminology, promote widget headings to h3 for TOC visibility
…s disabled post-launch, fix language in migration scenarios, fix subname migration to include detached names, add Emancipated hierarchy to token types table
…vent TODO to indexing page, add requireResolver to UR2 reference
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
…gration, fix anyId formatting, remove inaccurate v1 resolver continuity claim from overview, remove grace period from PermReg comparison table
wentelteefje and others added 7 commits May 13, 2026 12:42
Update shared CSS for the ENS docs brand refresh (typography, tokens, and surface styling).

Co-authored-by: Cursor <cursoragent@cursor.com>
Add inline code background colors for light and dark modes, normalize empty catch blocks, and reformat the ENSv2 sidebar entries for consistent indentation.

Co-authored-by: Cursor <cursoragent@cursor.com>
Apply font-semi-mono alongside semibold names in profile and record tables for clearer name typography.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update shared CSS for the ENS docs brand refresh (typography, tokens, and surface styling).

Co-authored-by: Cursor <cursoragent@cursor.com>
Add inline code background colors for light and dark modes, normalize empty catch blocks, and reformat the ENSv2 sidebar entries for consistent indentation.

Co-authored-by: Cursor <cursoragent@cursor.com>
Apply font-semi-mono alongside semibold names in profile and record tables for clearer name typography.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/migration.mdx Outdated
Comment thread src/pages/contracts/ensv2/permissioned-registry.mdx Outdated
Comment thread src/pages/contracts/ensv2/enhanced-access-control.mdx Outdated
Comment thread src/pages/contracts/ensv2/dns-resolvers.mdx Outdated
…tion, migration, aliasing) and audit reference sections against post-audit contracts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants