Petri
ENSv2 Playground

ENSv2 Playground

Try ENSv2 on Sepolia: register a name, set records, create subnames, manage who can do what, and set your primary name. Work top to bottom.

1. Get ready

You need Sepolia ETH for gas (any public faucet), test USDC for registration fees, and your own resolver to hold your records.

Connect a wallet (top right) on Sepolia to start.

2. Register a .eth name

Registration is commit-reveal: you commit to a secret, wait a minute so nobody can front-run you, then register. Fees are paid in test USDC.

3. Your name

Pick or register a name above.

4. Subnames

Pick or register a name above.

5. Access control

Create policies (sets of permissions) and groups (lists of addresses), then grant a policy to a group. Policies and groups are saved in this browser; granting writes the roles on-chain, one transaction per member.

Policies

  • Record editor My resolver (records)
    Set addresses, Set text records, Set content hash
  • Avatar only My resolver (records)
    Set text records (only "avatar")
  • Resolver manager A name
    Change the resolver
  • Subname manager A name's subname registry
    Create subnames, Renew subnames, Delete subnames
New policy

Roles on your resolver. They apply to every name that uses it.

Groups

No groups yet.

    Grant or revoke

    On: My resolver (records) · Set addresses, Set text records, Set content hash

    Deploy your resolver first (step 1).

    6. Primary name

    The name apps show for your address. It must resolve back to your address to count.

    Your primary name: connect a wallet

    7. Look up any name or address

    Resolution through the ENSv2 Universal Resolver, plus the registry path it walks.

    Resolving…

    8. Publish the Petri tree

    Write each version's record as text records on its name. One resolver on petri.eth serves every version.

    Loading…

    Connect a wallet to publish.

    From a terminal: npm run ens:publish -- --dry-run, then npm run ens:publish with PETRI_ENS_PRIVATE_KEY in .env.local.

    ENSv2 contract addresses (Sepolia)
    BatchRegistrar0xBe68Ff9aFc7D5A1864ffef5C82DE0A1C13E6B529
    ContractNamer0xDaB8b3dcb4C2BB181B9215b699b2C3E1fe180ae1
    DefaultReverseRegistrarAdapter0x4F32A1c62E202922d4d6307126F43218DB9dA6f5
    DNSAliasResolver0x6FD64A35388D2c22F1Fba96476Db59184B1fEaA0
    DNSSECGatewayProvider0x5710eE3945CAA32287553574fE995C0e8e3D613e
    DNSTLDResolver0xb0C788195697dB17543bF22CBC1b0E2b4A04F9b8
    DNSTXTResolver0x1eC6e8D261b1f8Fd0d755eA06186BDc1486197f5
    ENSV1Resolver0xb2BF4a9A86d29661EA93223582b9945943931e42
    ENSV2Resolver0x9458eC65b4a703Ee1be03434879F35fd32b64704
    ETHRegistrar0xAbe76F6C8DFcEd81AA5A2bB8034202A7136b94ca
    ETHRegistry0x657eA849311d3D5823348ddEd7C2AaAFb3EDE09E
    ETHRenewerV10xd06e726e9bD8ac0f33A2a45F4Cc28fe10d656a36
    Graveyard0x950b93885b33cE4C7e8571BE2c88A1aa93D82F49
    HCAOwnerAndSessionValidator0x6A62Af42D4241a02547b096C7DB43ca6411AF813
    HCAUpgradeSet0x2ceeDf92Fd032167c90936C9e6cA2931bd7Ec2c0
    LabelStore0x375C082021E677a40eA2AE094D050602dba90992
    LockedMigrationController0xab1B57C6eE5E91e6090595c0AF14CB9B8bc7773f
    ManagedUniversalResolverProxy0x6d80F2172CFdEc5730fE683860C33d26fC42e6F1
    MigrationHelper0x58d12d60471b98F191856e4C2d56886e9c3eA573
    MockDAI0x278053aCc97888E63Ec81c80FEC641Bf0Bf19664
    MockUSDC0x16f95D91DBa7dA3Aca778Ec053dF0FF6C6A8aA8e
    PermissionedResolverImpl0x14F09Fd05d4585759e54844DC9B00147131Cf243
    PublicResolverSet0xd12aF6aC82648056Fe7D6B2a9dB97235Aa509021
    PublicResolverV20xd7e590Ad0E92A6aC1d81f4483A9B951D3585a50F
    RegistryUpgradeSet0xd8a8369477b67f837E2B1054b2d47F3D1956b543
    ReverseRegistrarAdapter0x39993148CAA6a20aE1F08E1b2427966E97f85aaB
    RootBatchRegistrar0xCF5D485A531863856ED9D8A10D61707De7F06c21
    RootRegistry0x9703DBD26dAB89504490994138cF2c575251a9cE
    StandaloneHCAFactory0xB7CFeCEeD32DBa66c507b3c002dAD510b8399928
    StandaloneHCAImplementation0xdF4a24c42921810fed9363b07292E9152578D706
    StandardRentPriceOracle0x9B0b9C65BDAf9794Ff7697E4dCFb1f50581072BB
    UniversalHelper0x33f571aa8A160a21b877cF6E0Fb8806692b97DF5
    UniversalResolverV20x5d25C1D6aCBb71B7a28AA7899618a3412a8303e3
    UnlockedMigrationController0x7ed171bb143a905F56105e4eA146543Ecb122F55
    UpgradableUniversalResolverProxy0xeEeEEEeE14D718C2B47D9923Deab1335E144EeEe
    UserRegistryImpl0xA80338aAA8D23831cEa25E858D1774534aBb0263
    VerifiableFactory0x9e726Eb570beb6BCEb495AB8cdA7df517d4e841C
    WrapperRegistryImpl0x2741543c3B14640b97bC70a233318032f7E35bAC