From 9c7f5ce5f353d0c1f5ed2251b4f8e47b0c20689b Mon Sep 17 00:00:00 2001 From: Harpreet Singh Date: Tue, 11 Aug 2026 23:55:08 +0530 Subject: [PATCH 1/2] feat: add ENS Components section to documentation and changelog --- changelog/ens-components.mdx | 33 +++++++++++++ developer-guide/sdks/ens-components.mdx | 65 +++++++++++++++++++++++++ developer-guide/sdks/introduction.mdx | 3 ++ docs.json | 10 +++- user-guide/app.mdx | 1 + 5 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 changelog/ens-components.mdx create mode 100644 developer-guide/sdks/ens-components.mdx diff --git a/changelog/ens-components.mdx b/changelog/ens-components.mdx new file mode 100644 index 0000000..fb6bd97 --- /dev/null +++ b/changelog/ens-components.mdx @@ -0,0 +1,33 @@ +--- +title: "ENS Components" +description: "Changelog for ENS Components releases." +sidebarTitle: "ENS Components" +icon: "puzzle-piece" +--- + + + - Changed: + - Updated avatar and header record support to use `@thenamespace/avatar` v2. + - Externalized the Avatar SDK from the browser bundle. + + + + - Fixed: + - Populated ENS registration fees when the registration form opens. + - Preserved the displayed registration fees when no wallet is connected. + + + + - Fixed: + - Stabilized ENS registration fee estimation. + - Added an RPC fallback for fee estimation. + - Displayed estimated fees with consistent precision. + + + + - Added: + - Calendar-based duration selection for ENS registration and onchain subname minting. + - Agent instructions and quick-start resources for ENS Components integrations. + - Changed: + - Updated duration handling to use seconds across registration and minting flows. + diff --git a/developer-guide/sdks/ens-components.mdx b/developer-guide/sdks/ens-components.mdx new file mode 100644 index 0000000..9d511d0 --- /dev/null +++ b/developer-guide/sdks/ens-components.mdx @@ -0,0 +1,65 @@ +--- +title: "Overview" +description: "Add ENS workflows to React applications." +sidebarTitle: "Overview" +icon: "puzzle-piece" +--- + +`@thenamespace/ens-components` provides React components for `.eth` registration, ENS record editing, and onchain or offchain subname issuance. The components use wagmi and Viem for wallet and chain interactions. + +## Install + +Install the package and its peer dependencies: + +```bash +npm install @thenamespace/ens-components react react-dom wagmi viem @tanstack/react-query +``` + +Import the component styles once in your application: + +```tsx +import '@thenamespace/ens-components/styles'; +``` + +Your application must provide `WagmiProvider` and `QueryClientProvider`. + +## Use a component + +Import the form that matches your ENS workflow: + +```tsx +import { EnsNameRegistrationForm } from '@thenamespace/ens-components'; + +export function RegisterName() { + return ; +} +``` + +Set `isTestnet` to `true` to use Sepolia instead of Ethereum mainnet. + +## Available components + + + + `EnsNameRegistrationForm` handles the search, commit, wait, and register flow for `.eth` names. + + + `EnsRecordsForm` edits addresses, text records, contenthash, avatar, and header records. + + + `SelectRecordsForm` collects ENS records without requiring a wallet or transaction. + + + `SubnameMintForm` handles price lookup, record selection, and onchain minting from a Namespace listing. + + + `OffchainSubnameForm` creates and updates gasless subnames through the Namespace API. + + + +## Resources + +- Explore the components and their props in the [interactive documentation](https://enscomponents.com/). +- View the source on [GitHub](https://github.com/thenamespace/ens-components). +- Install the [ENS Components skill](/developer-guide/skills#ens-components-skill) for agent-assisted integration. +- Review release changes in the [ENS Components changelog](/changelog/ens-components). diff --git a/developer-guide/sdks/introduction.mdx b/developer-guide/sdks/introduction.mdx index c9ab578..8b614cf 100644 --- a/developer-guide/sdks/introduction.mdx +++ b/developer-guide/sdks/introduction.mdx @@ -21,4 +21,7 @@ SDK packages include: Upload and delete ENS avatar and header images with SIWE authentication. + + Add React interfaces for ENS registration, record editing, and subname issuance. + diff --git a/docs.json b/docs.json index 6a97025..8a24ade 100644 --- a/docs.json +++ b/docs.json @@ -173,6 +173,13 @@ "developer-guide/sdks/avatar/manual-flow", "developer-guide/sdks/avatar/errors" ] + }, + { + "group": "ENS Components", + "icon": "puzzle-piece", + "pages": [ + "developer-guide/sdks/ens-components" + ] } ] }, @@ -241,7 +248,8 @@ "changelog/address-sdk", "changelog/indexer-sdk", "changelog/mint-sdk", - "changelog/avatar-sdk" + "changelog/avatar-sdk", + "changelog/ens-components" ] } ], diff --git a/user-guide/app.mdx b/user-guide/app.mdx index 48de8ad..b7a83cc 100644 --- a/user-guide/app.mdx +++ b/user-guide/app.mdx @@ -74,6 +74,7 @@ Use the [Onchain section of the Namespace App](https://app.namespace.ninja/oncha After activation, users can mint through: +- The dedicated name page at `app.namespace.ninja/.eth`. - [Namespace search](/user-guide/app/search-register) for registering an ENS name or an available onchain subname. - The [ENS Widget](/user-guide/ens-widget) embedded on your website without building a registration interface. - A [custom minting website](/developer-guide/guide/subpages) based on the white-label Subpages starter. From ee001c760d22aa03dbdfde47700d39fea53f8517 Mon Sep 17 00:00:00 2001 From: Harpreet Singh Date: Wed, 12 Aug 2026 01:11:20 +0530 Subject: [PATCH 2/2] docs: add universal usernames page with interactive resolution diagram MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds overview/make-usernames-universal.mdx — how a product with its own username suffix gives those identities ENS names that any wallet resolves, via either a .eth parent or a DNS domain imported with DNSSEC. The page carries an animated CCIP-Read walkthrough (snippets/flow-explainer.jsx): - Six beats, resolve through signed response, with the payload shown at each hop. - Two toggles that both leave the path unchanged, which is the point: parent name (.eth vs imported DNS) and where records live (onchain contract vs your own API). Step 3 reads one store, never both — the unselected store stays visible but muted so the either/or reads without drawing a path nobody takes. - Arrow controls with a position readout instead of anonymous dots, and a beat-keyed timer so a manual step gets a full beat. Styles live in custom.css since Mintlify strips