Domain Events
Fetch recent events for a Domain by its canonical name. This example joins the events, domain_events, and domains tables to retrieve domain events associated with the vitalik.eth name. See Connect for setup.
The events table contains low-level onchain event data, which may require additional processing to interpret. For example, the data field is a hex string of ABI-encoded event data that may need to be decoded based on the event type (see selector field) to extract meaningful details about the event.
In the future, the ENS Unigraph may include data referencing higher-level event types (e.g., DomainRegistered, DomainTransferred, etc.) to simplify querying for common events without needing to parse raw event data. For now, use selector, topics, and data fields in the events table to filter and interpret events based on your app’s needs.
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 e.chain_id, e.block_number, e.transaction_hash, e.log_index, e.address as contract_address, e.sender, e.from, e.to, e.selector, e.topics, e.data, d.id as domain_idFROM "ensindexer_0".events eJOIN "ensindexer_0".domain_events de ON e.id = de.event_idJOIN "ensindexer_0".domains d ON de.domain_id = d.idWHERE d.canonical_name = 'vitalik.eth'AND d.canonical = trueORDER BY e.block_number DESC, e.log_index DESCLIMIT 5;| # | chain_id | block_number | transaction_hash | log_index | contract_address | sender | from | to | selector | topics | data | domain_id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 24001264 | 0x4d584f398c80ca58761fb3777aaa13f92966e92de157c6eea6bf334108175c74 | 672 | 0x59e16fccd424cc24e280be16e11bcd56fb0ce547 | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x59e16fccd424cc24e280be16e11bcd56fb0ce547 | 0xfa956c3bce4cb4b01166868ecaf0620566bc7e33fc70b0b9c6aef61e37e50b94 | | | |
| 2 | 1 | 24001264 | 0x4d584f398c80ca58761fb3777aaa13f92966e92de157c6eea6bf334108175c74 | 671 | 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85 | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x59e16fccd424cc24e280be16e11bcd56fb0ce547 | 0x9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6 | | 0x0000000000000000000000000000000000000000000000000000000092b2344a | |
| 3 | 1 | 23041336 | 0x97f2a1c01c3c252415a6b41f31d24fa69aa2d1c23bddbacaacd297f4b88467b5 | 888 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x3da24c024582931cfaf8267d8ed24d13a82a8068d5bd337d30ec45cea4e506ae | | | |
| 4 | 1 | 23041336 | 0x97f2a1c01c3c252415a6b41f31d24fa69aa2d1c23bddbacaacd297f4b88467b5 | 887 | 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85 | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6 | | 0x0000000000000000000000000000000000000000000000000000000090d100ca | |
| 5 | 1 | 21883127 | 0x8a105e50b30df4a93b038093cf4fdf87af1710703bf4bf6323651391fff23a27 | 208 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x91c8d85c0093cd2a985234916799a3eca1062912 | 0x91c8d85c0093cd2a985234916799a3eca1062912 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x3da24c024582931cfaf8267d8ed24d13a82a8068d5bd337d30ec45cea4e506ae | | | |
Output matches a point in time snapshot of ENSDb result from our Alpha 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, desc, eq } from "drizzle-orm";
const name = "vitalik.eth";const limit = 5;
const domainEvents = await ensDb .select({ chainId: ensIndexerSchema.event.chainId, blockNumber: ensIndexerSchema.event.blockNumber, transactionHash: ensIndexerSchema.event.transactionHash, logIndex: ensIndexerSchema.event.logIndex, contractAddress: ensIndexerSchema.event.address, sender: ensIndexerSchema.event.sender, from: ensIndexerSchema.event.from, to: ensIndexerSchema.event.to, selector: ensIndexerSchema.event.selector, topics: ensIndexerSchema.event.topics, data: ensIndexerSchema.event.data, domainId: ensIndexerSchema.domain.id, }) .from(ensIndexerSchema.event) .innerJoin( ensIndexerSchema.domainEvent, eq(ensIndexerSchema.event.id, ensIndexerSchema.domainEvent.eventId), ) .innerJoin( ensIndexerSchema.domain, eq(ensIndexerSchema.domainEvent.domainId, ensIndexerSchema.domain.id), ) .where( and( eq(ensIndexerSchema.domain.canonicalName, name), eq(ensIndexerSchema.domain.canonical, true), ), ) .orderBy( desc(ensIndexerSchema.event.blockNumber), desc(ensIndexerSchema.event.logIndex), ) .limit(limit);
console.log(domainEvents);| # | chainId | blockNumber | transactionHash | logIndex | contractAddress | sender | from | to | selector | topics | data | domainId |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 24001264 | 0x4d584f398c80ca58761fb3777aaa13f92966e92de157c6eea6bf334108175c74 | 672 | 0x59e16fccd424cc24e280be16e11bcd56fb0ce547 | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x59e16fccd424cc24e280be16e11bcd56fb0ce547 | 0xfa956c3bce4cb4b01166868ecaf0620566bc7e33fc70b0b9c6aef61e37e50b94 | | | |
| 2 | 1 | 24001264 | 0x4d584f398c80ca58761fb3777aaa13f92966e92de157c6eea6bf334108175c74 | 671 | 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85 | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x24e70b286513300a8a89a6d6433cee18412b6ace | 0x59e16fccd424cc24e280be16e11bcd56fb0ce547 | 0x9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6 | | 0x0000000000000000000000000000000000000000000000000000000092b2344a | |
| 3 | 1 | 23041336 | 0x97f2a1c01c3c252415a6b41f31d24fa69aa2d1c23bddbacaacd297f4b88467b5 | 888 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x3da24c024582931cfaf8267d8ed24d13a82a8068d5bd337d30ec45cea4e506ae | | | |
| 4 | 1 | 23041336 | 0x97f2a1c01c3c252415a6b41f31d24fa69aa2d1c23bddbacaacd297f4b88467b5 | 887 | 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85 | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x6447b1874b56a223eea2e6fafa2d1442075fbec7 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6 | | 0x0000000000000000000000000000000000000000000000000000000090d100ca | |
| 5 | 1 | 21883127 | 0x8a105e50b30df4a93b038093cf4fdf87af1710703bf4bf6323651391fff23a27 | 208 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x91c8d85c0093cd2a985234916799a3eca1062912 | 0x91c8d85c0093cd2a985234916799a3eca1062912 | 0x253553366da8546fc250f225fe3d25d0c782303b | 0x3da24c024582931cfaf8267d8ed24d13a82a8068d5bd337d30ec45cea4e506ae | | | |
Output matches a point in time snapshot of ENSDb result from our Alpha 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.