Choose your wallet

Select your wallet, then approve the connection in its extension.

No wallet detected. Enable Rabby or MetaMask in this browser, unlock it, then reload this page. On mobile, open NOMEN in your wallet’s built-in browser.

Connecting does not send a payment or request a transaction signature.

Names on ENSv2

The replacement registrar is deployed and verified on Sepolia. Claim a name under nomen-demo.eth using a passing agent you own. The demo name reader.nomen-demo.eth belongs to NOMEN-owned test agent #10226. These are Sepolia test names, not mainnet ENS names.

Open Claim a name from the app’s top menu. Connect the agent owner’s wallet, select Sepolia, enter an eligible agent ID and choose a label. Browse issued names at Registered names.

Claim

The current ERC-8004 owner supplies a label and Merkle proof. The registrar checks ownership, current eligibility, suspension and existing registration. Labels contain 3–32 lowercase ASCII letters, digits or hyphens, with no leading or trailing hyphen. The name receives no owner transfer or resolver-edit roles.

Current endorsement

isNamed returns true only when the current registration generation is unexpired, ownership still matches, the agent is not suspended and its checked root matches the current published root. Publishing a root invalidates old endorsements until revalidated. This is not automatic monitoring of metadata.

Resolver records

NomenResolver restricts writes to the registrar, isolates records by registration token and returns empty text when endorsement expires or is withdrawn. A failed record write rolls back a claim. The resolver exposes the text and ERC-165 interfaces; universal compatibility with every ENS client has not been established.

Revocation and renewal

An administrator can revoke with a public reason. Revocation suspends the agent, so the same proof cannot immediately reclaim a name. Reinstatement requires an explicit administrator action with a current proof. Renewal also requires a current proof and matching ownership. The administrator remains a trust assumption.

(bool live, string memory label, uint64 expiry) = registrar.isNamed(agentId);
require(live, "no current NOMEN endorsement");