Skip to content

Namegraph

Walk the root tree: root → domains → nested subdomains (depth-limited).
query Namegraph {
  root {
    id
    domains {
      edges {
        node {
          name

          subdomains {
            edges {
              node {
                name

                subdomains {
                  edges {
                    node {
                      name
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
{}
{
  "data": {
    "root": {
      "id": "99911155111-0xfd43dc00ab0d0e247a2827d15dddfc5bd9646a29",
      "domains": {
        "edges": [
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aaa"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aarp"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "abb"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "abbott"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "abbvie"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "abc"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "able"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "abogado"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "abudhabi"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ac"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "academy"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "accenture"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "accountant"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "accountants"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aco"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "actor"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ad"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ads"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "adult"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ae"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aeg"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aero"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aetna"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "af"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "afl"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "africa"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ag"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "agakhan"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "agency"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ai"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aig"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "airbus"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "airforce"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "airtel"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "akdn"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "al"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "alibaba"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "alipay"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "allfinanz"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "allstate"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ally"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "alsace"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "alstom"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "am"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "amazon"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "americanexpress"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "americanfamily"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "amex"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "amfam"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "amica"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "amsterdam"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "analytics"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "android"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "anquan"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "anz"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ao"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aol"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "apartments"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "app"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "apple"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aq"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aquarelle"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ar"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "arab"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aramco"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "archi"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "army"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "arpa"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "art"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "arte"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "as"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "asda"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "asia"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "associates"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "at"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "athleta"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "attorney"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "au"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "auction"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "audi"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "audible"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "audio"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "auspost"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "author"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "auto"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "autos"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aw"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "aws"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ax"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "axa"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "az"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "azure"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "ba"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "baby"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "baidu"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "banamex"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "band"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "bank"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "bar"
            }
          },
          {
            "node": {
              "subdomains": {
                "edges": []
              },
              "name": "barcelona"
            }
          }
        ]
      }
    }
  }
}
# 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 Namegraph { root { id domains { edges { node { name subdomains { edges { node { name subdomains { edges { node { name } } } } } } } } } } }",
  "variables": {}
}
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 NamegraphQuery = graphql(`
  query Namegraph {
    root {
      id
      domains {
        edges {
          node {
            name
  
            subdomains {
              edges {
                node {
                  name
  
                  subdomains {
                    edges {
                      node {
                        name
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
`);

const result = await client.omnigraph.query({
  query: NamegraphQuery,
  variables: {},
});

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 NamegraphQuery = graphql(`
  query Namegraph {
    root {
      id
      domains {
        edges {
          node {
            name
  
            subdomains {
              edges {
                node {
                  name
  
                  subdomains {
                    edges {
                      node {
                        name
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
`);

function NamegraphResult() {
  const [result] = useOmnigraphQuery({
    query: NamegraphQuery,
    variables: {},
  });
  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}>
      <NamegraphResult />
    </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
GraphQL Query
query Namegraph {
root {
id
domains {
edges {
node {
name
subdomains {
edges {
node {
name
subdomains {
edges {
node {
name
}
}
}
}
}
}
}
}
}
}
}

Payload and transport examples

{}

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

Back to Examples