Skip to main content

Set a primary name on Base, Arbitrum, or other L2s

Set a different ENS name per chain at primary.ens.domains: set the reverse record on the L2, the address record on Ethereum Mainnet.

Go to primary.ens.domains, pick the chain (Base, Arbitrum, OP Mainnet, Linea, or Scroll), and select Set. You approve once on the L2 to set the primary name. Then, if the chain's address doesn't already point at that wallet, you approve again on Ethereum Mainnet to set it. Once it syncs, yourname.eth shows on that chain instead of your 0x address.

Good to know

  • You need a little ETH on the L2 to set the primary name, and ETH on Ethereum Mainnet for the address record — records live on Ethereum Mainnet whichever chain the name is for, and a Default primary name is set there too. If the address already points at that wallet, the second step doesn't come up. Gas only, no other cost.

  • It only works once both pieces are set — the primary name on the chain, and that chain's address on Ethereum Mainnet.

  • .eth names and their onchain subnames only. Project names like yourname.base.eth can't be set at primary.ens.domains.


Should you set a Default or a Network primary name?

You can set one name that covers all EVM chains, or a different name per chain. Pick one before you start:

Type

What it does

Pick this when

Default primary name

Set once on Ethereum Mainnet. Works on any EVM chain where you use the same wallet.

You want the same .eth name everywhere.

Network primary name

Set per chain.

You want a different name on Base, Arbitrum, or another L2, or your contract lives at a different 0x address per chain.

If you're a regular wallet, set a Default first, then add a Network primary name only where you want something different. If you're a contract, see Set a primary name for your smart contract.

What is a primary name?

A primary name tells apps to show yourname.eth instead of 0x123...abcd. For the basic case on Ethereum Mainnet, see Set your primary name.


How to set the Default primary name

Note: onchain changes cost gas — the network fee Ethereum charges to process a transaction. It is paid in ETH from your connected wallet and goes to the network, not to ENS. Your wallet shows the exact fee before you approve.

You need a bit of ETH on Ethereum Mainnet for gas; there's no other cost. The Manager is the wallet that controls a name's records; it can change the ETH Address, set text records, and so on. If you're not on the Manager wallet, the app prompts you to switch when it's time to update the Default address.

  1. Go to primary.ens.domains and connect your wallet.

  2. Search your ENS name.

  3. In the Default section, select Set (or Update if one's already there).

  4. Pick the wallet you want as your Default primary name.

    The Default section, with each chain's address marked Incomplete
    The Choose an address dialog
  5. Pick the chains you want this name to cover. Greyed-out chains already point at this wallet; selected chains will get the new Default address.

    The Choose chains dialog, with Base selected
  6. Approve the primary name transaction in your wallet.

  7. If the Default address doesn't already point at the wallet you picked, approve that transaction too. If you're not the Manager, the app prompts you to switch wallets here.

    The Update Default address dialog, asking you to switch wallet

Most confirm in 1–2 blocks; busy networks can take longer. Once both land, your Default primary name is active.

The Ethereum row, showing the address resolved from Default

How to set a Network (L2) primary name

You need a bit of ETH on the L2 (Base ETH on Base, and so on) for the primary name transaction, and ETH on Ethereum Mainnet for the chain's address record if it doesn't already point at that wallet. The L2 flow runs on those chains, not Ethereum Mainnet. Address records always live on Ethereum Mainnet.

  1. Go to primary.ens.domains and connect your wallet.

  2. Search your .eth name.

  3. Find the chain: Base, Arbitrum, OP Mainnet, Linea, or Scroll.

  4. Select Set (or Update) and pick the wallet you want for that chain.

    The OP Mainnet card, with no address set
    The Choose an address dialog, with an address pasted in
  5. Select Switch connection to move to the L2. If the primary name uses a different wallet from the one you're on, the app also asks you to switch wallets — connect the one you want this primary name to belong to.

    The Set OP Mainnet primary name dialog, asking you to switch
    The Connect a Wallet chooser, listing the wallet options
  6. Approve the primary name transaction on the L2.

  7. If the chain's address doesn't already point at that wallet, switch back to Ethereum Mainnet to set it. Select Switch connection, connect the Manager wallet (only the Manager can change records), and approve.

    The Update OP Mainnet address dialog, asking you to switch
  8. Wait for syncing. Sync times vary by chain — see L2 sync times. The name won't show until syncing finishes and the chain's address is set on Ethereum Mainnet.

The This change is not immediate warning, with I understand
The OP Mainnet card, showing the Syncing status
The Arbitrum One card, showing an Active address

L2 sync times

After the primary name transaction on the L2 confirms, syncing starts on its own. These times apply to Network primary names:

Chain

Sync time

Ethereum Mainnet

~1 block

Base

~6 hours

Arbitrum

~6 hours

OP Mainnet

~6 hours

Linea

8–24 hours

Scroll

~1 hour

Status indicators

Status

What it means

What to do

Incomplete

The Default primary name is set, but the matching Default address isn't on the name yet.

Set the Default address on the name; you need to be the name's Manager to do that. Waiting won't clear this. If you just want your wallet to stop showing the name, clear the primary name instead. See How to clear a Network primary name.

Resolved from Default

No Network primary name is set on this chain, so apps fall back to your Default.

Nothing, unless you want a different name on this chain.

Syncing

A Network primary name was just set or changed. The change is spreading across the L2.

Wait. See the sync times above.

Active

The primary name is live on that chain.

Nothing.


How to clear a Network primary name

  1. Go to primary.ens.domains and connect your wallet.

  2. Search your .eth name.

  3. Find the chain.

  4. Select the bin icon.

  5. Approve the transaction.

The Ethereum card, with an arrow at the bin icon

If you have a Default primary name, that one takes over as the fallback. Clearing a primary name doesn't touch the name's address records — to change or remove those, use app.ens.domains. See Edit your ENS profile.

The same card after clearing, resolved from Default

Clearing when the name has moved to another wallet. Your primary name belongs to your wallet, so you can clear it whether or not you manage the name; you only need to be the Manager to change the name's address records.

You can also clear it at tools.ens.xyz/setprimary rather than primary.ens.domains: connect the wallet, tick Clear primary name, enter the wallet address, and approve. See Clear your primary name for both methods.

Viewing primary names in the ENS App

  1. Search for an ENS name (or a 0x address).

  2. Open the More tab.

  3. The primary name section shows the active Default and Network primary names with the wallet each one points at.

A name's tabs, with an arrow at More
The primary name section, listing an address per network

You can also search a 0x address to see if a primary name is set.

The search bar, with an address pasted and its name found
The address page, headed by the name it resolves to

Common questions

How do I check the primary name of an address or ENS name?

Open app.ens.domains, search the ENS name or the 0x address, and open the More tab. For a deeper view, go to primary.ens.domains.

Does setting a primary name on an L2 cost anything?

Gas only; there's no other fee. You need a bit of ETH on the L2 for the primary name transaction (Base ETH on Base, and so on) and ETH on Ethereum Mainnet for the chain's address record.

I use the Coinbase or Base app and only have ETH on Base — can I set a primary name?

Yes. If the address already points at your wallet, Base ETH is enough. If it doesn't, you need a little ETH on Ethereum Mainnet as well — address records live there, and so does a Default primary name. Bridge a little across and try again. It covers gas, not a fee.

How many transactions are needed to set a primary name?

One on the L2 to set the primary name, and one on Ethereum Mainnet to set that chain's address — the second only if the address isn't already pointing at your wallet. A Default primary name runs entirely on Ethereum Mainnet: set the name, then the Default address if it isn't set.

Why doesn't my primary name show on Etherscan or other sites?

Check the status at primary.ens.domains and wait for syncing to finish if it's still going. Make sure both the primary name and the matching address record are set. Etherscan doesn't read Network primary names yet, so an L2-only setup won't show there. Each site picks up changes on its own schedule — wallets and dApps that read ENS records in real time see them right away; cached sites can sometimes take a day or two. For developers, see docs.ens.domains/web/reverse.

Can I test this on Sepolia?

Yes. Use sepolia.primary.ens.domains with Sepolia test ETH. The steps are the same, but Sepolia syncs more slowly. The ENSv2 apps also run on Sepolia, and L2 primary-name setting will be part of the ENS Explorer app at explorer.ens.dev.

Did this answer your question?