Domain By Name
Load a domain by interpreted name, including profile information. Terminal window Terminal window Terminal window
Run in ENSAdmin
Open an interactive playground to execute this example on our alpha
ENSNode instance.
GraphQL
query DomainByName($name: InterpretedName!) { domain(by: { name: $name }) { canonical { name { beautified } } owner { address } resolve { profile { description addresses { ethereum } } } }} Variables
{ "name": "vitalik.eth"} Output
{ "data": { "domain": { "canonical": { "name": { "beautified": "vitalik.eth" } }, "owner": { "address": "0x220866b1a2219f40e72f5c628b65d54268ca3a9d" }, "resolve": { "profile": { "description": "mi pinxe lo crino tcati", "addresses": { "ethereum": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" } } } } }}Output matches a GraphQL Response from alpha ; live output depends on your ENSNode instance.
Opens an editable StackBlitz project with this snippet.
TypeScript
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 DomainByNameQuery = graphql(` query DomainByName($name: InterpretedName!) { domain(by: { name: $name }) { canonical { name { beautified } } owner { address } resolve { profile { description addresses { ethereum } } } } }`);
const result = await client.omnigraph.query({ query: DomainByNameQuery, variables: { name: asInterpretedName("vitalik.eth"), },});
if (result.errors) throw new Error(JSON.stringify(result.errors));console.log(JSON.stringify(result.data, null, 2)); Output
{ "data": { "domain": { "canonical": { "name": { "beautified": "vitalik.eth" } }, "owner": { "address": "0x220866b1a2219f40e72f5c628b65d54268ca3a9d" }, "resolve": { "profile": { "description": "mi pinxe lo crino tcati", "addresses": { "ethereum": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" } } } } }}Output matches a GraphQL Response from alpha ; live output depends on your ENSNode instance.
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.
Opens an editable StackBlitz project with this snippet.
TSX (React)
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 DomainByNameQuery = graphql(` query DomainByName($name: InterpretedName!) { domain(by: { name: $name }) { canonical { name { beautified } } owner { address } resolve { profile { description addresses { ethereum } } } } }`);
function DomainByNameResult() { const [result] = useOmnigraphQuery({ query: DomainByNameQuery, 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}> <DomainByNameResult /> </OmnigraphProvider> );} Output
{ "data": { "domain": { "canonical": { "name": { "beautified": "vitalik.eth" } }, "owner": { "address": "0x220866b1a2219f40e72f5c628b65d54268ca3a9d" }, "resolve": { "profile": { "description": "mi pinxe lo crino tcati", "addresses": { "ethereum": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" } } } } }}Output matches a GraphQL Response from alpha ; live output depends on your ENSNode instance.
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.
cURL
# 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 DomainByName($name: InterpretedName!) { domain(by: { name: $name }) { canonical { name { beautified } } owner { address } resolve { profile { description addresses { ethereum } } } } }", "variables": {"name":"vitalik.eth"}}' Response
{ "data": { "domain": { "canonical": { "name": { "beautified": "vitalik.eth" } }, "owner": { "address": "0x220866b1a2219f40e72f5c628b65d54268ca3a9d" }, "resolve": { "profile": { "description": "mi pinxe lo crino tcati", "addresses": { "ethereum": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" } } } } }}Output matches a GraphQL Response from alpha ; live output depends on your ENSNode instance.
Back to Examples