Account Domains
Performing SQL queries on the ENS Unigraph requires that you have the unigraph plugin activated in your ENSNode instance. Learn more
Fetch the Domains owned by an address (across both ENSv1 and ENSv2), including each Domain’s type (ENSv1Domain vs ENSv2Domain). See Connect for setup.
It is the name of an ENSDb Writer Schema, which is a database schema within an ENSDb instance, used to store indexed ENS data from a given ENSDb Writer instance. We use ensindexer_0 as the ENSDb Writer Schema Name in examples on this page, but your ENSDb Writer instance may be configured to use a different schema name. Make sure to replace
ensindexer_0 with the actual schema name used by your ENSDb Writer instance
when querying the ENSDb instance directly. For example, ENSIndexer allows configuring its own ENSDb Writer Schema Name with the ENSINDEXER_SCHEMA_NAME environment variable.
SELECT d.type, d.canonical_name, d.canonical_node, d.id, d.owner_idFROM "ensindexer_0".domains dWHERE d.canonical = trueAND d.owner_id = '0xffffffffff52d316b7bd028358089bc8066b8f80'ORDER BY d.canonical_nameLIMIT 10;| # | type | canonical_name | canonical_node | id | owner_id |
|---|---|---|---|---|---|
| 1 | ENSv1Domain | [3ad05e2a5922916840bc1e5e6039f00b27cbabf8d0428abce062aa2011307374].addr.reverse | 0xd3947f90d04d7f41f973f09ad7dbdb34cb7463359369e6cf1663bbf928d66e53 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 2 | ENSv1Domain | [52602a50858115661619fb28cf543ee766c182e0be6743c72d5bd674b3d12686].eth | 0xe91ce3506cd47457c2b3f04c2736875ca1d17ed74bf1a328a7e64cca5ae8c94b | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 3 | ENSv1Domain | [8268685e13ae6bbfa54901f2954f9fcf80839ffa102fe7146b930623ce9bd7f0].addr.reverse | 0x21c356e778799bfddf59a5683c04f6b08710d7c198fef466cc697563b2210785 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 4 | ENSv1Domain | [d90db363b8bc1371f7d738d264ff7294bfc5636f907c467adf68321a3c6d8188].eth | 0x08c0f01c419a8971af6b3eefe2a8bba1556cccf1163df60b1cdbcab632c8ab48 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 5 | ENSv1Domain | [d99fc3d8237200c7122431276a337421cf793f51276873df5a54cc482fdbe685].addr.reverse | 0x4fc87044c0adc4a0c996b9dafe3a4889e72fe0745fc76f18151b81ed73582218 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 6 | ENSv2Domain | eth | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 7 | ENSv2Domain | reverse | 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 8 | ENSv1Domain | reverse | 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 9 | ENSv2Domain | sfmpfv44d0mig.eth | 0x9b365136312d7ee6e232e3c98e459bc8667ec818c47fbbc55bb5e23d0a21e8cc | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 10 | ENSv2Domain | sfmpfvtoicv2ok.eth | 0x7d0c27336cf9d51c3fc8f29ef4ef69df9cd4a8ec983e3e17d457a8de6013f3c5 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
Output matches a point in time snapshot of ENSDb result from our "V2 Sepolia" Hosted ENSNode instance. Live output depends on the configuration of your ENSNode instance and also changes that may have happened in ENS since this point in time snapshot example response was captured.
ensDb query builder and ensIndexerSchema
schema definition in the Connect example if you haven't already.
import { and, eq, asc } from "drizzle-orm";
const owner = "0xffffffffff52d316b7bd028358089bc8066b8f80";const limit = 10;
const accountDomains = await ensDb .select({ canonicalName: ensIndexerSchema.domain.canonicalName, canonicalNode: ensIndexerSchema.domain.canonicalNode, type: ensIndexerSchema.domain.type, id: ensIndexerSchema.domain.id, ownerId: ensIndexerSchema.domain.ownerId, }) .from(ensIndexerSchema.domain) .where( and( eq(ensIndexerSchema.domain.ownerId, owner), eq(ensIndexerSchema.domain.canonical, true), ), ) .orderBy(asc(ensIndexerSchema.domain.canonicalName)) .limit(limit);
console.log(accountDomains);| # | type | canonicalName | canonicalNode | id | ownerId |
|---|---|---|---|---|---|
| 1 | ENSv1Domain | [3ad05e2a5922916840bc1e5e6039f00b27cbabf8d0428abce062aa2011307374].addr.reverse | 0xd3947f90d04d7f41f973f09ad7dbdb34cb7463359369e6cf1663bbf928d66e53 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 2 | ENSv1Domain | [52602a50858115661619fb28cf543ee766c182e0be6743c72d5bd674b3d12686].eth | 0xe91ce3506cd47457c2b3f04c2736875ca1d17ed74bf1a328a7e64cca5ae8c94b | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 3 | ENSv1Domain | [8268685e13ae6bbfa54901f2954f9fcf80839ffa102fe7146b930623ce9bd7f0].addr.reverse | 0x21c356e778799bfddf59a5683c04f6b08710d7c198fef466cc697563b2210785 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 4 | ENSv1Domain | [d90db363b8bc1371f7d738d264ff7294bfc5636f907c467adf68321a3c6d8188].eth | 0x08c0f01c419a8971af6b3eefe2a8bba1556cccf1163df60b1cdbcab632c8ab48 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 5 | ENSv1Domain | [d99fc3d8237200c7122431276a337421cf793f51276873df5a54cc482fdbe685].addr.reverse | 0x4fc87044c0adc4a0c996b9dafe3a4889e72fe0745fc76f18151b81ed73582218 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 6 | ENSv2Domain | eth | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 7 | ENSv2Domain | reverse | 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 8 | ENSv1Domain | reverse | 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 9 | ENSv2Domain | sfmpfv44d0mig.eth | 0x9b365136312d7ee6e232e3c98e459bc8667ec818c47fbbc55bb5e23d0a21e8cc | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
| 10 | ENSv2Domain | sfmpfvtoicv2ok.eth | 0x7d0c27336cf9d51c3fc8f29ef4ef69df9cd4a8ec983e3e17d457a8de6013f3c5 | | 0xffffffffff52d316b7bd028358089bc8066b8f80 |
Output matches a point in time snapshot of ENSDb result from our "V2 Sepolia" Hosted ENSNode instance. Live output depends on the configuration of your ENSNode instance and also changes that may have happened in ENS since this point in time snapshot example response was captured.