Domain Resolver
Assigned resolver contract address and recent resolver events.
query DomainResolver($name: InterpretedName!) { domain(by: { name: $name }) { resolver { assigned { contract { address } events(first: 5) { edges { node { topics data timestamp } } } } } }}{ "name": "vitalik.eth"}{ "data": { "domain": { "resolver": { "assigned": { "contract": { "address": "0x231b0ee14048e9dccd1d247744d114a4eb5e8e63" }, "events": { "edges": [ { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014231b0ee14048e9dccd1d247744d114a4eb5e8e63000000000000000000000000", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000231b0ee14048e9dccd1d247744d114a4eb5e8e63", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014cca61e65a53e6b40044418ac5f44dc300163581e000000000000000000000000", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000cca61e65a53e6b40044418ac5f44dc300163581e", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0x393882d541e97281f2da0e9897c6c6f0dc6ef5ef6ff1cd33796e5b91d955e02d" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014552f1784df9f343e34a8a38c8f270b91c099fe94000000000000000000000000", "timestamp": "1680004127" } } ] } } } } }}Output matches a point in time snapshot GraphQL response from our alpha ENSNode instance. Live output depends on the configuration of your ENSNode instance and ENS state updates.
import { createEnsNodeClient } from "enssdk/core";import { asInterpretedName } from "enssdk";import { graphql, omnigraph } from "enssdk/omnigraph";
const client = createEnsNodeClient({ url: process.env.ENSNODE_URL || "https://api.alpha.ensnode.io"}).extend(omnigraph);
const DomainResolverQuery = graphql(` query DomainResolver($name: InterpretedName!) { domain(by: { name: $name }) { resolver { assigned { contract { address } events(first: 5) { edges { node { topics data timestamp } } } } } } }`);
const result = await client.omnigraph.query({ query: DomainResolverQuery, variables: { name: asInterpretedName("vitalik.eth"), },});
if (result.errors) throw new Error(JSON.stringify(result.errors));console.log(JSON.stringify(result.data, null, 2));{ "data": { "domain": { "resolver": { "assigned": { "contract": { "address": "0x231b0ee14048e9dccd1d247744d114a4eb5e8e63" }, "events": { "edges": [ { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014231b0ee14048e9dccd1d247744d114a4eb5e8e63000000000000000000000000", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000231b0ee14048e9dccd1d247744d114a4eb5e8e63", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014cca61e65a53e6b40044418ac5f44dc300163581e000000000000000000000000", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000cca61e65a53e6b40044418ac5f44dc300163581e", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0x393882d541e97281f2da0e9897c6c6f0dc6ef5ef6ff1cd33796e5b91d955e02d" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014552f1784df9f343e34a8a38c8f270b91c099fe94000000000000000000000000", "timestamp": "1680004127" } } ] } } } } }}Output matches a point in time snapshot GraphQL response from our alpha ENSNode instance. Live output depends on the configuration of your ENSNode instance and ENS state updates.
enssdk package manager 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.15.1 && npm install -D tsx typescript @types/node# 3. Paste the TypeScript snippet above into src/index.ts# 4. RunENSNODE_URL=https://api.alpha.ensnode.io npm startSee the enssdk docs for gql.tada plugin and tsconfig setup.
import { OmnigraphProvider, useOmnigraphQuery, graphql } from "enskit/react/omnigraph";import { createEnsNodeClient } from "enssdk/core";import { asInterpretedName } from "enssdk";import { omnigraph } from "enssdk/omnigraph";
const client = createEnsNodeClient({ url: import.meta.env.VITE_ENSNODE_URL || "https://api.alpha.ensnode.io"}).extend(omnigraph);
const DomainResolverQuery = graphql(` query DomainResolver($name: InterpretedName!) { domain(by: { name: $name }) { resolver { assigned { contract { address } events(first: 5) { edges { node { topics data timestamp } } } } } } }`);
function DomainResolverResult() { const [result] = useOmnigraphQuery({ query: DomainResolverQuery, variables: { name: asInterpretedName("vitalik.eth"), }, }); 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}> <DomainResolverResult /> </OmnigraphProvider> );}{ "data": { "domain": { "resolver": { "assigned": { "contract": { "address": "0x231b0ee14048e9dccd1d247744d114a4eb5e8e63" }, "events": { "edges": [ { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014231b0ee14048e9dccd1d247744d114a4eb5e8e63000000000000000000000000", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000231b0ee14048e9dccd1d247744d114a4eb5e8e63", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014cca61e65a53e6b40044418ac5f44dc300163581e000000000000000000000000", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000cca61e65a53e6b40044418ac5f44dc300163581e", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0x393882d541e97281f2da0e9897c6c6f0dc6ef5ef6ff1cd33796e5b91d955e02d" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014552f1784df9f343e34a8a38c8f270b91c099fe94000000000000000000000000", "timestamp": "1680004127" } } ] } } } } }}Output matches a point in time snapshot GraphQL response from our alpha ENSNode instance. Live output depends on the configuration of your ENSNode instance and ENS state updates.
enskit package manager 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.15.1 enssdk@1.15.1# 3. Copy the TSX snippet above into src/App.tsx# 4. RunVITE_ENSNODE_URL=https://api.alpha.ensnode.io npm run devSee the enskit docs for gql.tada plugin and provider setup.
# POST JSON to your ENSNode Omnigraph endpoint (same path enssdk uses).curl -sS -X POST "https://api.alpha.ensnode.io/api/omnigraph" \ -H "Content-Type: application/json" \ -d '{ "query": "query DomainResolver($name: InterpretedName!) { domain(by: { name: $name }) { resolver { assigned { contract { address } events(first: 5) { edges { node { topics data timestamp } } } } } } }", "variables": {"name":"vitalik.eth"}}'{ "data": { "domain": { "resolver": { "assigned": { "contract": { "address": "0x231b0ee14048e9dccd1d247744d114a4eb5e8e63" }, "events": { "edges": [ { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014231b0ee14048e9dccd1d247744d114a4eb5e8e63000000000000000000000000", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xfdd5d5de6dd63db72bbc2d487944ba13bf775b50a80805fe6fcaba9b0fba88f5" ], "data": "0x000000000000000000000000231b0ee14048e9dccd1d247744d114a4eb5e8e63", "timestamp": "1680003947" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014cca61e65a53e6b40044418ac5f44dc300163581e000000000000000000000000", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2", "0xe35448a3ff9559d59e1e333f43d31da358e34f198f04df138d8ba20518577593" ], "data": "0x000000000000000000000000cca61e65a53e6b40044418ac5f44dc300163581e", "timestamp": "1680004115" } }, { "node": { "topics": [ "0x65412581168e88a1e60c6459d7f44ae83ad0832e670826c05a4e2476b57af752", "0x393882d541e97281f2da0e9897c6c6f0dc6ef5ef6ff1cd33796e5b91d955e02d" ], "data": "0x000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000014552f1784df9f343e34a8a38c8f270b91c099fe94000000000000000000000000", "timestamp": "1680004127" } } ] } } } } }}Output matches a point in time snapshot GraphQL response from our alpha ENSNode instance. Live output depends on the configuration of your ENSNode instance and ENS state updates.
Back to Examples