Registry Domains
Enumerate domains under a specific v2 ETH registry contract. Terminal window Terminal window
query RegistryDomains(
$registry: AccountIdInput!
) {
registry(by: { contract: $registry }) {
domains {
edges {
node {
label { interpreted }
name
}
}
}
}
} {
"registry": {
"chainId": 99911155111,
"address": "0x31a2bb5d933557cce1b3129993193896d074db92"
}
} {
"data": {
"registry": {
"domains": {
"edges": [
{
"node": {
"label": {
"interpreted": "⌐◨-◨"
},
"name": "⌐◨-◨.eth"
}
},
{
"node": {
"label": {
"interpreted": "♂♂♂♂"
},
"name": "♂♂♂♂.eth"
}
},
{
"node": {
"label": {
"interpreted": "♾♾♾♾"
},
"name": "♾♾♾♾.eth"
}
},
{
"node": {
"label": {
"interpreted": "⚱⚱⚱⚱"
},
"name": "⚱⚱⚱⚱.eth"
}
},
{
"node": {
"label": {
"interpreted": "🏴☠"
},
"name": "🏴☠.eth"
}
},
{
"node": {
"label": {
"interpreted": "🐮💻🐛"
},
"name": "🐮💻🐛.eth"
}
},
{
"node": {
"label": {
"interpreted": "👑👑👑👑👑👑"
},
"name": "👑👑👑👑👑👑.eth"
}
},
{
"node": {
"label": {
"interpreted": "👨🏼💻"
},
"name": "👨🏼💻.eth"
}
},
{
"node": {
"label": {
"interpreted": "👱♀👱♀"
},
"name": "👱♀👱♀.eth"
}
},
{
"node": {
"label": {
"interpreted": "🔞🔞🔞🔞🔞"
},
"name": "🔞🔞🔞🔞🔞.eth"
}
},
{
"node": {
"label": {
"interpreted": "🔥🔥🔥💤💤💤"
},
"name": "🔥🔥🔥💤💤💤.eth"
}
},
{
"node": {
"label": {
"interpreted": "🔫🔫🔫🔫🔫"
},
"name": "🔫🔫🔫🔫🔫.eth"
}
},
{
"node": {
"label": {
"interpreted": "😀😀😀😀😀😀"
},
"name": "😀😀😀😀😀😀.eth"
}
},
{
"node": {
"label": {
"interpreted": "😠😠😠😠😠😠"
},
"name": "😠😠😠😠😠😠.eth"
}
},
{
"node": {
"label": {
"interpreted": "🚀🚀🚀🚀🚀🚀"
},
"name": "🚀🚀🚀🚀🚀🚀.eth"
}
},
{
"node": {
"label": {
"interpreted": "$2442"
},
"name": "$2442.eth"
}
},
{
"node": {
"label": {
"interpreted": "$bless"
},
"name": "$bless.eth"
}
},
{
"node": {
"label": {
"interpreted": "$degenhobo"
},
"name": "$degenhobo.eth"
}
},
{
"node": {
"label": {
"interpreted": "$hila"
},
"name": "$hila.eth"
}
},
{
"node": {
"label": {
"interpreted": "$pauly"
},
"name": "$pauly.eth"
}
},
{
"node": {
"label": {
"interpreted": "$phunks"
},
"name": "$phunks.eth"
}
},
{
"node": {
"label": {
"interpreted": "$vince"
},
"name": "$vince.eth"
}
},
{
"node": {
"label": {
"interpreted": "000"
},
"name": "000.eth"
}
},
{
"node": {
"label": {
"interpreted": "0000"
},
"name": "0000.eth"
}
},
{
"node": {
"label": {
"interpreted": "000000"
},
"name": "000000.eth"
}
},
{
"node": {
"label": {
"interpreted": "0000000"
},
"name": "0000000.eth"
}
},
{
"node": {
"label": {
"interpreted": "00000000"
},
"name": "00000000.eth"
}
},
{
"node": {
"label": {
"interpreted": "00000000000"
},
"name": "00000000000.eth"
}
},
{
"node": {
"label": {
"interpreted": "0000000001"
},
"name": "0000000001.eth"
}
},
{
"node": {
"label": {
"interpreted": "00000002"
},
"name": "00000002.eth"
}
},
{
"node": {
"label": {
"interpreted": "00000008"
},
"name": "00000008.eth"
}
},
{
"node": {
"label": {
"interpreted": "00001"
},
"name": "00001.eth"
}
},
{
"node": {
"label": {
"interpreted": "00002"
},
"name": "00002.eth"
}
},
{
"node": {
"label": {
"interpreted": "00003"
},
"name": "00003.eth"
}
},
{
"node": {
"label": {
"interpreted": "00004"
},
"name": "00004.eth"
}
},
{
"node": {
"label": {
"interpreted": "-0003"
},
"name": "-0003.eth"
}
},
{
"node": {
"label": {
"interpreted": "-0004"
},
"name": "-0004.eth"
}
},
{
"node": {
"label": {
"interpreted": "-0008"
},
"name": "-0008.eth"
}
},
{
"node": {
"label": {
"interpreted": "001"
},
"name": "001.eth"
}
},
{
"node": {
"label": {
"interpreted": "-0034"
},
"name": "-0034.eth"
}
},
{
"node": {
"label": {
"interpreted": "0-1-2-3"
},
"name": "0-1-2-3.eth"
}
},
{
"node": {
"label": {
"interpreted": "0123456789"
},
"name": "0123456789.eth"
}
},
{
"node": {
"label": {
"interpreted": "01249"
},
"name": "01249.eth"
}
},
{
"node": {
"label": {
"interpreted": "01283018238012938123"
},
"name": "01283018238012938123.eth"
}
},
{
"node": {
"label": {
"interpreted": "012983102938012812"
},
"name": "012983102938012812.eth"
}
},
{
"node": {
"label": {
"interpreted": "01425"
},
"name": "01425.eth"
}
},
{
"node": {
"label": {
"interpreted": "01935"
},
"name": "01935.eth"
}
},
{
"node": {
"label": {
"interpreted": "01chayan"
},
"name": "01chayan.eth"
}
},
{
"node": {
"label": {
"interpreted": "02017"
},
"name": "02017.eth"
}
},
{
"node": {
"label": {
"interpreted": "02278"
},
"name": "02278.eth"
}
},
{
"node": {
"label": {
"interpreted": "02686"
},
"name": "02686.eth"
}
},
{
"node": {
"label": {
"interpreted": "02734"
},
"name": "02734.eth"
}
},
{
"node": {
"label": {
"interpreted": "02905"
},
"name": "02905.eth"
}
},
{
"node": {
"label": {
"interpreted": "03141"
},
"name": "03141.eth"
}
},
{
"node": {
"label": {
"interpreted": "03466"
},
"name": "03466.eth"
}
},
{
"node": {
"label": {
"interpreted": "04552"
},
"name": "04552.eth"
}
},
{
"node": {
"label": {
"interpreted": "04761"
},
"name": "04761.eth"
}
},
{
"node": {
"label": {
"interpreted": "04799"
},
"name": "04799.eth"
}
},
{
"node": {
"label": {
"interpreted": "05873"
},
"name": "05873.eth"
}
},
{
"node": {
"label": {
"interpreted": "06557"
},
"name": "06557.eth"
}
},
{
"node": {
"label": {
"interpreted": "07171"
},
"name": "07171.eth"
}
},
{
"node": {
"label": {
"interpreted": "07194"
},
"name": "07194.eth"
}
},
{
"node": {
"label": {
"interpreted": "07333"
},
"name": "07333.eth"
}
},
{
"node": {
"label": {
"interpreted": "08586"
},
"name": "08586.eth"
}
},
{
"node": {
"label": {
"interpreted": "09jul"
},
"name": "09jul.eth"
}
},
{
"node": {
"label": {
"interpreted": "[0ab910abde95e9e1b434c50f9a04428d68bc48b201e3f33906e087eff9c6d37c]"
},
"name": "[0ab910abde95e9e1b434c50f9a04428d68bc48b201e3f33906e087eff9c6d37c].eth"
}
},
{
"node": {
"label": {
"interpreted": "0cf5e"
},
"name": "0cf5e.eth"
}
},
{
"node": {
"label": {
"interpreted": "0mcp"
},
"name": "0mcp.eth"
}
},
{
"node": {
"label": {
"interpreted": "0rxafj"
},
"name": "0rxafj.eth"
}
},
{
"node": {
"label": {
"interpreted": "0trust"
},
"name": "0trust.eth"
}
},
{
"node": {
"label": {
"interpreted": "0vortex"
},
"name": "0vortex.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x0"
},
"name": "0x0.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x0002"
},
"name": "0x0002.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x010y3"
},
"name": "0x010y3.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x420"
},
"name": "0x420.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x55559e7da7aec04b3156e16a60cf57a348843dfb"
},
"name": "0x55559e7da7aec04b3156e16a60cf57a348843dfb.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x5dc5b884e1cf9e0e31e8f645ae98a18e8e22b18b"
},
"name": "0x5dc5b884e1cf9e0e31e8f645ae98a18e8e22b18b.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x666"
},
"name": "0x666.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x7c26"
},
"name": "0x7c26.eth"
}
},
{
"node": {
"label": {
"interpreted": "0x8bit"
},
"name": "0x8bit.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xaacaa"
},
"name": "0xaacaa.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xaegis"
},
"name": "0xaegis.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xakhil"
},
"name": "0xakhil.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xalice"
},
"name": "0xalice.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xarkaw"
},
"name": "0xarkaw.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xasd"
},
"name": "0xasd.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xbnb"
},
"name": "0xbnb.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xbr1"
},
"name": "0xbr1.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xbtc"
},
"name": "0xbtc.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xbuns"
},
"name": "0xbuns.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
},
"name": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xc0d3rs"
},
"name": "0xc0d3rs.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xcallme"
},
"name": "0xcallme.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xcryptomarine"
},
"name": "0xcryptomarine.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xdao"
},
"name": "0xdao.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xden"
},
"name": "0xden.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xestate"
},
"name": "0xestate.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xfanatic"
},
"name": "0xfanatic.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xfliz"
},
"name": "0xfliz.eth"
}
},
{
"node": {
"label": {
"interpreted": "0xfoundation"
},
"name": "0xfoundation.eth"
}
}
]
}
}
}
} # POST JSON to your ENSNode Omnigraph endpoint (same path enssdk uses).
curl -sS -X POST "https://api.v2-sepolia.ensnode.io/api/omnigraph" \
-H "Content-Type: application/json" \
-d @- <<'EOF'
{
"query": "query RegistryDomains( $registry: AccountIdInput! ) { registry(by: { contract: $registry }) { domains { edges { node { label { interpreted } name } } } } }",
"variables": {
"registry": {
"chainId": 99911155111,
"address": "0x31a2bb5d933557cce1b3129993193896d074db92"
}
}
}
EOF import { createEnsNodeClient } from "enssdk/core";
import { graphql, omnigraph } from "enssdk/omnigraph";
const client = createEnsNodeClient({
url: process.env.ENSNODE_URL || "https://api.v2-sepolia.ensnode.io"
}).extend(omnigraph);
const RegistryDomainsQuery = graphql(`
query RegistryDomains(
$registry: AccountIdInput!
) {
registry(by: { contract: $registry }) {
domains {
edges {
node {
label { interpreted }
name
}
}
}
}
}
`);
const result = await client.omnigraph.query({
query: RegistryDomainsQuery,
variables: {
registry: {
"chainId": 99911155111,
"address": "0x31a2bb5d933557cce1b3129993193896d074db92"
},
},
});
if (result.errors) throw new Error(JSON.stringify(result.errors));
console.log(JSON.stringify(result.data, null, 2)); import { OmnigraphProvider, useOmnigraphQuery, graphql } from "enskit/react/omnigraph";
import { createEnsNodeClient } from "enssdk/core";
import { omnigraph } from "enssdk/omnigraph";
const client = createEnsNodeClient({
url: import.meta.env.VITE_ENSNODE_URL || "https://api.v2-sepolia.ensnode.io"
}).extend(omnigraph);
const RegistryDomainsQuery = graphql(`
query RegistryDomains(
$registry: AccountIdInput!
) {
registry(by: { contract: $registry }) {
domains {
edges {
node {
label { interpreted }
name
}
}
}
}
}
`);
function RegistryDomainsResult() {
const [result] = useOmnigraphQuery({
query: RegistryDomainsQuery,
variables: {
registry: {
"chainId": 99911155111,
"address": "0x31a2bb5d933557cce1b3129993193896d074db92"
},
},
});
const { data, fetching, error } = result;
if (!data && fetching) return <p>Loading…</p>;
if (error) return <p>Error: {error.message}</p>;
if (!data) return <p>No data returned.</p>;
const formatted = JSON.stringify(
data,
(_, value) => (typeof value === "bigint" ? value.toString() : value),
2,
);
return <code>{formatted}</code>;
}
export default function App() {
return (
<OmnigraphProvider client={client}>
<RegistryDomainsResult />
</OmnigraphProvider>
);
}
# 1. Create project
mkdir -p my-ens-script/src && cd my-ens-script
npm init -y && touch src/index.ts
npm pkg set type=module scripts.start="tsx src/index.ts"
# 2. Install dependencies
npm install enssdk@1.13.1 && npm install -D tsx typescript @types/node
# 3. Paste the TypeScript snippet above into src/index.ts
# 4. Run
ENSNODE_URL=https://api.v2-sepolia.ensnode.io npm start
# 1. Create project
mkdir -p my-ens-script/src && cd my-ens-script
pnpm init && touch src/index.ts
pnpm pkg set type=module scripts.start="tsx src/index.ts"
# 2. Install dependencies
pnpm add enssdk@1.13.1 && pnpm add -D tsx typescript @types/node
# 3. Paste the TypeScript snippet above into src/index.ts
# 4. Run
ENSNODE_URL=https://api.v2-sepolia.ensnode.io pnpm start
# 1. Create project
npm create vite@latest my-ens-app -- --template react-ts --no-interactive --no-immediate
cd my-ens-app
# 2. Install dependencies
npm install
npm install enskit@1.13.1 enssdk@1.13.1
# 3. Copy the TSX snippet above into src/App.tsx
# 4. Run
VITE_ENSNODE_URL=https://api.v2-sepolia.ensnode.io npm run dev
# 1. Create project
pnpm create vite@latest my-ens-app --template react-ts --no-interactive --no-immediate
cd my-ens-app
# 2. Install dependencies
pnpm install
pnpm add enskit@1.13.1 enssdk@1.13.1
# 3. Copy the TSX snippet above into src/App.tsx
# 4. Run
VITE_ENSNODE_URL=https://api.v2-sepolia.ensnode.io pnpm run dev
Run in ENSAdmin
Open an interactive playground to execute this query on our sepolia-v2
ENSNode instance.
GraphQL Query
query RegistryDomains( $registry: AccountIdInput!) { registry(by: { contract: $registry }) { domains { edges { node { label { interpreted } name } } } }}Payload and transport examples
{ "registry": { "chainId": 99911155111, "address": "0x31a2bb5d933557cce1b3129993193896d074db92" }}
Response is an illustrative snapshot; live data depends on your ENSNode instance. The curl tab shows a POST to
https://api.v2-sepolia.ensnode.io/api/omnigraph
Open an interactive playground to execute this query on our sepolia-v2
ENSNode instance.
TypeScript
import { createEnsNodeClient } from "enssdk/core";import { graphql, omnigraph } from "enssdk/omnigraph";
const client = createEnsNodeClient({ url: process.env.ENSNODE_URL || "https://api.v2-sepolia.ensnode.io"}).extend(omnigraph);
const RegistryDomainsQuery = graphql(` query RegistryDomains( $registry: AccountIdInput! ) { registry(by: { contract: $registry }) { domains { edges { node { label { interpreted } name } } } } }`);
const result = await client.omnigraph.query({ query: RegistryDomainsQuery, variables: { registry: { "chainId": 99911155111, "address": "0x31a2bb5d933557cce1b3129993193896d074db92" }, },});
if (result.errors) throw new Error(JSON.stringify(result.errors));console.log(JSON.stringify(result.data, null, 2));enssdk setup
# 1. Create projectmkdir -p my-ens-script/src && cd my-ens-scriptnpm init -y && touch src/index.tsnpm pkg set type=module scripts.start="tsx src/index.ts"# 2. Install dependenciesnpm install enssdk@1.13.1 && npm install -D tsx typescript @types/node# 3. Paste the TypeScript snippet above into src/index.ts# 4. RunENSNODE_URL=https://api.v2-sepolia.ensnode.io npm startSee the enssdk docs for gql.tada plugin and tsconfig setup.
Open an interactive playground to execute this query on our sepolia-v2
ENSNode instance.
TSX (React)
import { OmnigraphProvider, useOmnigraphQuery, graphql } from "enskit/react/omnigraph";import { createEnsNodeClient } from "enssdk/core";import { omnigraph } from "enssdk/omnigraph";
const client = createEnsNodeClient({ url: import.meta.env.VITE_ENSNODE_URL || "https://api.v2-sepolia.ensnode.io"}).extend(omnigraph);
const RegistryDomainsQuery = graphql(` query RegistryDomains( $registry: AccountIdInput! ) { registry(by: { contract: $registry }) { domains { edges { node { label { interpreted } name } } } } }`);
function RegistryDomainsResult() { const [result] = useOmnigraphQuery({ query: RegistryDomainsQuery, variables: { registry: { "chainId": 99911155111, "address": "0x31a2bb5d933557cce1b3129993193896d074db92" }, }, }); const { data, fetching, error } = result; if (!data && fetching) return <p>Loading…</p>; if (error) return <p>Error: {error.message}</p>; if (!data) return <p>No data returned.</p>; const formatted = JSON.stringify( data, (_, value) => (typeof value === "bigint" ? value.toString() : value), 2, ); return <code>{formatted}</code>;}
export default function App() { return ( <OmnigraphProvider client={client}> <RegistryDomainsResult /> </OmnigraphProvider> );}enskit setup
# 1. Create projectnpm create vite@latest my-ens-app -- --template react-ts --no-interactive --no-immediatecd my-ens-app# 2. Install dependenciesnpm installnpm install enskit@1.13.1 enssdk@1.13.1# 3. Copy the TSX snippet above into src/App.tsx# 4. RunVITE_ENSNODE_URL=https://api.v2-sepolia.ensnode.io npm run devSee the enskit docs for gql.tada plugin and provider setup.
Back to Examples