Account Resolver Permissions
Resolver contracts where an account has been granted resolver ACLs. Terminal window Terminal window Terminal window
Run in ENSAdmin
Open an interactive playground to execute this example on our sepolia-v2
ENSNode instance.
GraphQL
query AccountResolverPermissions($address: Address!) { account(by: { address: $address }) { resolverPermissions { edges { node { resolver { contract { address } } } } } }} Variables
{ "address": "0x205d2686da3bf33f64c17f21462c51b5ead462cf"} Output
{ "data": { "account": { "resolverPermissions": { "edges": [ { "node": { "resolver": { "contract": { "address": "0x5f35454af804f1131d6c1261c55b77308be5a11c" } } } } ] } } }}Output matches a GraphQL Response snapshot; live output depends on your ENSNode instance.
Opens an editable StackBlitz project with this snippet.
TypeScript
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 AccountResolverPermissionsQuery = graphql(` query AccountResolverPermissions($address: Address!) { account(by: { address: $address }) { resolverPermissions { edges { node { resolver { contract { address } } } } } } }`);
const result = await client.omnigraph.query({ query: AccountResolverPermissionsQuery, variables: { address: "0x205d2686da3bf33f64c17f21462c51b5ead462cf", },});
if (result.errors) throw new Error(JSON.stringify(result.errors));console.log(JSON.stringify(result.data, null, 2)); Output
{ "data": { "account": { "resolverPermissions": { "edges": [ { "node": { "resolver": { "contract": { "address": "0x5f35454af804f1131d6c1261c55b77308be5a11c" } } } } ] } } }}Output matches a GraphQL Response snapshot; 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.13.1 && npm install -D tsx typescript @types/node# 3. Paste the TypeScript snippet above into src/index.ts# 4. RunENSNODE_URL=https://api.v2-sepolia.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 { omnigraph } from "enssdk/omnigraph";
const client = createEnsNodeClient({ url: import.meta.env.VITE_ENSNODE_URL || "https://api.v2-sepolia.ensnode.io"}).extend(omnigraph);
const AccountResolverPermissionsQuery = graphql(` query AccountResolverPermissions($address: Address!) { account(by: { address: $address }) { resolverPermissions { edges { node { resolver { contract { address } } } } } } }`);
function AccountResolverPermissionsResult() { const [result] = useOmnigraphQuery({ query: AccountResolverPermissionsQuery, variables: { address: "0x205d2686da3bf33f64c17f21462c51b5ead462cf", }, }); 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}> <AccountResolverPermissionsResult /> </OmnigraphProvider> );} Output
{ "data": { "account": { "resolverPermissions": { "edges": [ { "node": { "resolver": { "contract": { "address": "0x5f35454af804f1131d6c1261c55b77308be5a11c" } } } } ] } } }}Output matches a GraphQL Response snapshot; 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.13.1 enssdk@1.13.1# 3. Copy the TSX snippet above into src/App.tsx# 4. RunVITE_ENSNODE_URL=https://api.v2-sepolia.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.v2-sepolia.ensnode.io/api/omnigraph" \ -H "Content-Type: application/json" \ -d @- <<'EOF'{ "query": "query AccountResolverPermissions($address: Address!) { account(by: { address: $address }) { resolverPermissions { edges { node { resolver { contract { address } } } } } } }", "variables": { "address": "0x205d2686da3bf33f64c17f21462c51b5ead462cf" }}EOF Response
{ "data": { "account": { "resolverPermissions": { "edges": [ { "node": { "resolver": { "contract": { "address": "0x5f35454af804f1131d6c1261c55b77308be5a11c" } } } } ] } } }}Output matches a GraphQL Response snapshot; live output depends on your ENSNode instance.
Back to Examples