How to Name Your Smart Contract with ENS on an Ethereum Layer 2 Network
Learn how to give your smart contracts deployed on Layer 2 networks human-readable ENS names using Enscribe, making them discoverable and trustworthy across the multi-chain ecosystem.
Why Name Contracts on Layer 2?
Layer 2 networks like Arbitrum, Optimism, Base, Scroll, and Linea offer faster transactions and lower costs, but they also fragment the user experience. When your contracts exist across multiple L2s, users struggle with:
- Address Confusion: Different addresses for the same protocol across chains
- Trust Verification: Difficulty confirming legitimate contract addresses
- Poor Discovery: Hard to find and remember contract addresses
- Manual Chain Management: Constantly copying addresses between networks
ENS naming on L2 networks solves these problems by providing consistent, human-readable identities.
With L2 ENS naming, app.enscribe.eth
can work consistently across Ethereum, Base, Arbitrum, and other supported networks.
What You'll Learn
This comprehensive guide covers:
- Understanding L2 ENS naming
- Supported Layer 2 networks
- Setting up L2 names for existing contracts
- Managing multi-chain contract identities
Supported Layer 2 Networks
Enscribe supports ENS naming on these Layer 2 networks:
Network | Mainnet | Testnet | Coin Type |
---|---|---|---|
Arbitrum | Yes | Yes (Sepolia) | 2147483652 |
Optimism | Yes | Yes (Sepolia) | 2147483658 |
Base | Yes | Yes (Sepolia) | 2147483653 |
Scroll | Yes | Yes (Sepolia) | 2147483657 |
Linea | Yes | Yes (Sepolia) | 2147483656 |
Each network uses a unique coin type identifier that enables the ENS system to resolve the correct contract address based on which network you're querying.
Types of L2 Naming
1. Native L2 Domain Names
Some L2 networks have their own ENS domain extensions:
.base.eth
- Native Base network names.linea.eth
- Native Linea network names
These work only on their respective networks and are separate from cross-chain L2 primary names.
2. L2 Primary Names (ENSIP-19)
L2 primary names follow the ENSIP-19 standard, enabling:
- One name, multiple networks - Same ENS name works across all supported L2s
- Cross-chain resolution - Resolves to correct address on each network
- Unified identity - Consistent branding across the ecosystem
Prerequisites for L2 Naming
Before you begin:
- Contract deployed on one or more L2 networks
- L1 wallet connection - Must connect to Ethereum mainnet or Sepolia
- Own ENS domain - L2 primary names require your own parent domain
- Contract compatibility - Ownable, ERC173, or ReverseClaimer interfaces for full functionality
L2 primary names must be set up from L1 (Ethereum mainnet or Sepolia) because the core ENS infrastructure resides on L1. You cannot set up L2 primary names by connecting directly to an L2 network.
Step-by-Step L2 Naming Process
Step 1: Access Enscribe on L1
- Go to enscribe.xyz
- Connect to Ethereum mainnet or Sepolia (not L2)
- Navigate to "Name Contract"
- Ensure you're connected to L1 in your wallet
If you're connected to an L2, Enscribe will show a warning and prompt you to switch to L1.
Step 2: Enter Contract Details
Contract Address
- Enter your contract's address (can be from L1 or L2)
- Enscribe will detect contract compatibility automatically
Choose ENS Name
- Label: Choose a descriptive name for your contract
- Parent Domain: Must use your own ENS domain (not Enscribe-provided domains)
The default Enscribe parent domain deployd.eth
is not yet compatible with L2 primary names. You must use your own ENS domain as the parent.
Step 3: Select L2 Networks
Click "Choose L2 Chains" to see available options:
Select which L2 networks you want to set up naming for:
- Arbitrum (Mainnet/Sepolia)
- Optimism (Mainnet/Sepolia)
- Base (Mainnet/Sepolia)
- Scroll (Mainnet/Sepolia)
- Linea (Mainnet/Sepolia)
Step 4: Choose Naming Strategy
Enscribe supports three main scenarios:
Scenario 1: Same Address Across All Chains
Perfect for CREATE2 deployments or when you have the same address everywhere.
Process:
- Set up L1 naming (optional)
- Configure forward resolution on selected L2s
- Set primary names on each L2
Scenario 2: L2-Only Naming
Skip L1 entirely and focus only on L2 networks.
Process:
- Enable "Skip L1 Naming"
- Set up only selected L2 networks
- Configure L2 primary names
Scenario 3: Different Addresses on Different L2s
Use the same ENS name for contracts with different addresses across networks.
Process:
- Set up first contract address on its L2
- Repeat process for other addresses on other L2s
- Same ENS name resolves to different addresses per network
Step 5: Execute Transaction Flow
The system will guide you through the required transactions:
Typical flow for L1 + L2 naming:
- Create subname on L1 ENS
- Set forward resolution on L1 (ENS name → address)
- Set reverse resolution on L1 (address → ENS name)
- Switch to each L2 automatically
- Set forward resolution on each selected L2
- Set primary name on each selected L2
Step 6: Automatic Chain Switching
Enscribe automatically:
- Prompts wallet to switch networks
- Executes transactions on each chain
- Tracks progress across all networks
- Handles failed transactions gracefully
Step 7: Verify Success
After completion, you'll see a success modal with:
- Contract address
- Your new ENS name for the contract
- Links to view txs for each L2 on respective block explorer
- Share on X/Twitter and Farcaster
Understanding the Technical Process
Forward Resolution Setup
For each L2 network, the ENS resolver is configured to return your contract address when someone queries yourname.eth
on that specific network using the network's coin type.
Example:
yourname.eth on Ethereum → 0x123... (coin type 60)
yourname.eth on Base → 0x123... (coin type 2147483653)
yourname.eth on Arbitrum → 0x456... (coin type 2147483652)
Reverse Resolution Setup
Each contract address is configured to resolve back to your ENS name when queried on its respective network.
Example:
0x123... on Ethereum → yourname.eth
0x123... on Base → yourname.eth
0x456... on Arbitrum → yourname.eth
Getting Help
Community Support
Documentation Resources
- Complete Docs: Technical reference
- Blog: Updates and announcements
- Check our FAQ
Ready to name your L2 contracts? Head to Enscribe, connect to Ethereum mainnet, and give your multi-chain contracts the unified identity they deserve.
Building a more connected and user-friendly multi-chain ecosystem, one name at a time.