Overview
ENS (Ethereum Name Service) allows users to set metadata with their ENS names. This metadata has values
associated with keys
.
A key can be a wallet address, content hash (IPFS), ABI, email, description, avatar, website URL, and social handles like Twitter (X), GitHub, Discord, etc.
ENS Record Updated
The ENS Resolver smart contract emits the following event whenever someone updates any metadata value:
TextChanged (index_topic_1 bytes32 node, index_topic_2 string indexedKey, string key)
To create our expression, we will need to target two values:
- The ENS Resolver contract address - We'll use the contract address of the ENS Public Resolver deployed on the Ethereum Mainnet, but if you have your own custom Resolver contract, use that contract address instead. This value gets set as the
tx_logs_address
, as we will be looking for any transactions from this address (the contract). - The event the contract emits when the action we're interested in occurs - In the case of ENS Resolver, it is the
TextChanged
event (event documentation from ENS). On EVM blockchains, the event is encoded and can be found intx_logs_topic0
. To get the encoded value, you will need to take the event definition (event name and parameters' types), run it through the Keccak-256 hash function, and prefix it with0x
.
TextChanged(bytes32,string,string)
⬇
d8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550
⬇
0xd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550
Expression
1tx_logs_address == '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'2&&3tx_logs_topic0 == '0xd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550'