# 通过Subgraph使用ENS **Published by:** [dns3](https://paragraph.com/@beagles/) **Published on:** 2022-10-05 **URL:** https://paragraph.com/@beagles/subgraph-ens ## Content Subgraph是ENS在The Graph上托管的ENS合约的索引和结构化数据访问服务。比起ENS的JavaScript库,它可以用来更加灵活的访问ENS数据,比如以下的使用场景: https://docs.ens.domains/contract-api-reference/subgraphdata查询设置了某个TEXTS字段的用户,如设置了头像avatar的用户, 设置了email的用户, 或者其他更特殊的字段,如carrierId。 我们可以通过carrierId来判断使用了beagle chat手机客户端的用户。查询方法如下:{ domains(where: {resolver_:{texts_contains:["carrierId"]}}) { name labelName resolver{ texts } resolvedAddress{id} } } 返回结果为:{ "data": { "domains": [ { "name": "tomas.eth", "labelName": "tomas", "resolver": { "texts": [ "email", "carrierId" ] }, "resolvedAddress": { "id": "0x2259c79c85141a59b9117c789a5ae09774b7572f" } }, { "name": "liwei.beagles.eth", "labelName": "liwei", "resolver": { "texts": [ "carrierId" ] }, "resolvedAddress": { "id": "0xa37f4be5106ec699488e21e5412956f765e32b6e" } }, { "name": "zeliang.beagle.eth", "labelName": "zeliang", "resolver": { "texts": [ "carrierId", "avatar", "nickName" ] }, "resolvedAddress": { "id": "0x2259c79c85141a59b9117c789a5ae09774b7572f" } } ] } } 查询某个地址是否有ENS名字 注意id的字符串为小写字母。query getDomainForAccount { account(id: "0xc461d56919d1957692eb98dbb15ae23a3567d1bb") { registrations(first: 10, orderBy: expiryDate, orderDirection: desc) { domain { name } } id } } 返回值为:{ "data": { "account": { "registrations": [ { "domain": { "name": "beagles.eth" } }, { "domain": { "name": "lenspace.eth" } } ], "id": "0xc461d56919d1957692eb98dbb15ae23a3567d1bb" } } } subgprah的查询地址为:rinkeby testnet https://thegraph.com/hosted-service/subgraph/ensdomains/ensrinkebyEthereum Mainnet https://thegraph.com/hosted-service/subgraph/ensdomains/ens Graph的使用文档:https://thegraph.com/docs/en/querying/graphql-api/ 特别注意递归条件(nested entity filtering)的使用。 ## Publication Information - [dns3](https://paragraph.com/@beagles/): Publication homepage - [All Posts](https://paragraph.com/@beagles/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@beagles): Subscribe to updates - [Twitter](https://twitter.com/KadLoop): Follow on Twitter