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.

Contracts & addresses

Everything onchain, by address

Current NOMEN deployment · Sepolia

Deployed September 11, 2026 under nomen-demo.eth, with a new operator wallet. The deployed registrar and resolver bytecode match the local build. Registry permissions, current ownership, Merkle eligibility, a real claim, non-transferability and ENS text records were checked against Sepolia. This is testnet deployment verification, not an independent security audit.

reader.nomen-demo.eth identifies NOMEN-owned test agent #10226. View the claim transaction. The older registrar at 0x0ae4…8686 and the old nomen.eth test namespace are no longer used by this app.

Historical trial receipts

These deployed contracts remain readable and historical evidence can still be verified. The current workbench no longer publishes trial receipts. New public feedback uses Orders: a 5 test USDC payment on the agent’s network commits the initial complaint draft; signed statements and subsequent updates are stored in Neon. The payment is not a verified purchase from an agent.

NomenEvaluationRegistry is an append-only receipt contract pinned to the ERC-8004 Identity Registry on each chain. It rejects unknown agent ids and stores only hashes, the wallet that submitted the review, the outcome and observation block. It has no owner, fees or upgrade authority. A receipt proves what that wallet recorded; it does not turn a user review into a NOMEN certification.

NetworkDeploymentStatus
Sepolia0xEd3dFB7c561CEf35F51e9613f8E89dD821e16605test receipt confirmed
Arbitrum Sepolia0x33D6893fA6015EeecE1d9232A8D0659F42eF669etest receipt confirmed
Arc Testnet0x32F26E5807af0C9e8ac71F7F4351164e2Eb60878test receipt confirmed
ContractAddressNotes
NomenResolver0x8443a2C263e770C5180E533B7B571BA6eED029f7Returns current endorsement text; only the registrar can write records.
NomenRegistrar0x481d5fbd6f7B955D34Dbe3069B30dFFd3C15E81CIssues and revokes names. Holds ROLE_REGISTRAR, ROLE_UNREGISTER, ROLE_RENEW on the subregistry.
nomen-demo.eth subregistry0x01F0e0F27F30C445C3F5e48Fc9873849e06B76c8An ENSv2 PermissionedRegistry proxy, the same template ENS uses for .eth itself. Attached to nomen-demo.eth with setSubregistry.
nomen-demo.ethregistered in ETHRegistryOne year, paid in MockUSDC through the ENSv2 ETHRegistrar (commit, wait 60 s, reveal).

ENSv2 on Sepolia (ENS deployments)

ContractAddress
ETHRegistry0xBDC85dD5b15D7ecb354cd7cb6f2c50b4f2c4F0E2
ETHRegistrar0xa88553F454b77203B0D036A05c894d555EAAa2Cc
PublicResolverV20xe7b9A25607E02da8145E4EB1836CA539E53f11f7

ERC-8004 registries

ChainIdentityReputation
Ethereum mainnet0x8004A169FB4a3325136EB29fA0ceB6D2e539a4320x8004BAa17C55a88189AE136b182e5fdA19dE9b63
Sepolia0x8004A818BFB912233c491871b3d84c89A494BD9e0x8004B663056A597Dffe9eCcC1965A193B7388713
Arbitrum Sepolia0x8004A818BFB912233c491871b3d84c89A494BD9e0x8004B663056A597Dffe9eCcC1965A193B7388713
Arc testnet0x8004A818BFB912233c491871b3d84c89A494BD9e0x8004B663056A597Dffe9eCcC1965A193B7388713

Sepolia, Arbitrum Sepolia and Arc share addresses because the testnet registries were deployed deterministically.

Registrar interface

function claim(string label, uint256 agentId, bytes32[] proof) returns (uint256 tokenId);
function isNamed(uint256 agentId) view returns (bool live, string label, uint64 expiry);
function isEligible(uint256 agentId, bytes32[] proof) view returns (bool);
function eligibilityRoot() view returns (bytes32);
function eligibilitySource() view returns (string);   // where the scan behind the root lives

// admin
function publishRoot(bytes32 root, string source);
function revoke(uint256 agentId, string reason);
function renew(uint256 agentId, bytes32[] proof);
function reinstate(uint256 agentId, bytes32[] proof);

event NameClaimed(uint256 indexed agentId, address indexed owner, string label, uint256 tokenId);
event NameRevoked(uint256 indexed agentId, string label, string reason);
event RootPublished(bytes32 indexed root, string source, uint64 at);
event AgentReinstated(uint256 indexed agentId);

Tests

Thirty local Foundry tests (using registry mocks, not a live-network certification): ownership, merkle eligibility, double claims, non-transferability, revocation and re-claim, expiry, admin gating, deterministic scan proofs and append-only evaluation receipts. A separate test reproduces ENSIP-25’s ERC-7930 example byte for byte and checks the Sepolia and Arc chain references.