Domain By Name
Run in ENSAdmin
Opens the hosted playground with this query pre-filled.
query DomainByName($name: InterpretedName!) {
domain(by: {name: $name}) {
__typename
id
label { interpreted hash }
name
owner { address }
... on ENSv1Domain {
rootRegistryOwner { address }
}
... on ENSv2Domain {
subregistry {
contract { chainId address }
}
}
}
} {
"name": "sfmonicdebmig.eth"
} {
"data": {
"domain": {
"__typename": "ENSv2Domain",
"id": "0x…",
"label": {
"interpreted": "sfmonicdebmig",
"hash": "0x…"
},
"name": "sfmonicdebmig.eth",
"owner": {
"address": "0x2f8e8b1126e75fde0b7f731e7cb5847eba2d2574"
},
"subregistry": {
"contract": {
"chainId": 11155111,
"address": "0x…"
}
}
}
}
} # 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 DomainByName($name: InterpretedName!) { domain(by: {name: $name}) { __typename id label { interpreted hash } name owner { address } ... on ENSv1Domain { rootRegistryOwner { address } } ... on ENSv2Domain { subregistry { contract { chainId address } } } } }",
"variables": {
"name": "sfmonicdebmig.eth"
}
}
EOF
GraphQL
query DomainByName($name: InterpretedName!) { domain(by: {name: $name}) { __typename id label { interpreted hash } name owner { address }
... on ENSv1Domain { rootRegistryOwner { address } }
... on ENSv2Domain { subregistry { contract { chainId address } } } }}Payload and transport examples
{ "name": "sfmonicdebmig.eth"}
Response is an illustrative snapshot; live data depends on your ENSNode instance. The curl tab shows a POST to
/api/omnigraph on your
connection base URL (same as enssdk).