If you are working with an ENS library, your library will automatically find the ENS deployment you need. If for whatever reason, you need to interact with ENS directly, details for the currently supported deployments are detailed here.
The ENS registry is deployed at 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e. This same address is used across Mainnet, Ropsten, Rinkeby and Goerli.
On mainnet, the following registrars are deployed:
.eth, using the .eth Permanent registrar.
.xyz, via DNS integration
.luxe, via a custom integration that allows any owner of a .luxe DNS name to use ENS.
.kred, via a custom integration that synchs and changes to a .kred ENS token to DNS automatically.
.art, via a custom integration
To find out the contract address of each tld, check the "controller" address of the tld (eg: https://app.ens.domains/name/xyz for
Ropsten test network has the .test registrar deployed. This registrar permits anyone to instantly register a domain for testing purposes; these domains persist for 28 days.
In addition, the test networks also have a deployment of the .eth registrar for testing purposes.
For other contract addresses such as root, mulisig, controller, public resolver, and so on, you can see their address under https://app.ens.domains/name/ens.eth/subdomains
Back in February 2020, the ENS registry was migrated to the new contract address to patch security vulnabilities (Read more detail here). The prior registry addresses were: