Offchain resolution current status

According to the docs (ENS Layer2 and offchain data support - ENS Documentation) there should be official support for some L2s.
Is there currently official support for any L2? Any public/testnet deployment to start testing?

Otherwise, how MAY we use offline subdomains? After checking the example (GitHub - ensdomains/offchain-resolver) there are quite a lot of unclear answers…

Furthermore, according to this: ENS Layer2 and offchain data support - ENS Documentation I should be able to set a primary name to names on offchain. However, they just don’t appear under my account.
I have a domain linked to my address, but it doesn’t appear, so I can’t set it as Primary ENS Name (reverse record).

1 Like

The trust minimised L2 resolver is still at prototype phase and we don’t have any official contracts deployed. All the current CCIP-read implementation uses OffchainResolver. Some of them may have their own contract on L2/sidechains but that’s their own deployment. We have been a bit behind on L2 Resolver deployment but we will resuming the work after Devcon.

That’s the side effect of offchain names not emitting events hence our app don’t know that you own the subdomain. I mentioned that to frontend team so the feature to let you specify offchain based subdomains will be added into our


Thank you! That’d be great.

Now, the worst part is the lack of support for subdomains an CCIP from many tools for etherscan or Metamask.

You should be able to set primary name direct on the reverse registrar contract.

It won’t display in etherscan though.

#3 - setName

1 Like

Etherscan already partially supports it. What they haven’t supported is all DNS imported names (currently only .eth , and .xyz are supported afaik).

Metamask just released their support of the offchain resolution at version 0.9 which they are rolling out to all users this week.

1 Like

What’s the reason of etherscan not displaying/supporting it?
Being a subdomain? or being offline?

At least on Görli, I’m getting a mixed result.

Querying directly for the ENS for that address:
I’m getting the proper subdomain and maindomain reverse record.
Querying the address:
I’m not getting the ENS Reverse Record under the “More Info” tab.
However, on mainnet (e.g. it appears.
I don’t know if it is due to being a subdomain or Goerli.

USING ONCHAIN SUBDOMAIN (in this case for testing)
Using the enslookup-search I’m getting the address and info from ENS for the subdomain.
I haven’t set on the mainnet as Reverse Record.

Etherscan won’t display for the same reason that it won’t show in the primary drop-down in

Both of these dapps use the events for addressChanged that are outputted by the resolver, and for CCIP they aren’t outputted.

1 Like

Is there any roadmap/idea to support this with offline resolution?
And… why is not the resolver output the addressChanged when using the “setName” function on offline resolutions? To avoid changing offline and be out of sync?

It’s not the reverse registrar that outputs the event, it’s the resolver when the address is changed/set. Outputting events requires an on-chain transaction, and if the registration is done off-chain then…

But setting as Reverse Record implies an OnChain transaction different from the registration. So with the setName we could output that event.
And for those wanting to set the reserve record will have that information onChain.

Etherscan checks that the address is set to the same as the primary ens and for that it uses the addrChanged event outputted from the resolver linked to the ENS.

1 Like

What if the offline resolver is in a different EVM Blockchain? Will those events be listened and valid for this?
Does the same applies when official L2s offline resolvers are deployed?