As part of our mission to fix Ethereum UX, educating users on everything to do with naming smart contracts and ENS is a key part of this.
While we have a lot of technical documentation on our site, what's been missing is guides that tie together the content in an easy to follow manner. We're launching a new Guides section to help developers deploy and name smart contracts with Enscribe on L1 and L2 networks. Think of it as a hands-on companion to our technical documentation.
The Guides section focuses on practical tutorials you can follow along. While our documentation covers technical details, these guides walk you through real workflows step by step.
Historically the Enscribe App only supported creating subnames for naming smart contracts. This has changed with our latest release!
We recognise that some people may want to name their contracts directly with a 2LD such as mymultisig.eth or use a subname they have already created such as treasury.mytoken.eth.
We’re excited to introduce a revamped naming UX, where we’ve not only simplified the naming experience further for users, but now provide a second option when naming your contract via the Use Existing Name button.
This required us to think over the current naming flow and so we redesigned our Name Contract page all the while still keeping everything simple.
We now have a button called Create Subname that lets you create a new subname. We show the same UI elements as before but with a few changes. We’ve simplified selecting a parent domain by replacing the Parent Name drop-down with a text field instead.
We’ve added a Select Domain button that lets you select either one of your existing domains or the one provided by Enscribe –
You can also create a new domain using the ENS app by clicking on the Purchase New Domain button. Clicking on this button will show a dialog that will confirm if you want to go to the ENS app.
When you click on the Use Existing Name button, we show a Contract Name text field alongside the Select Name button to select one of the several names you already own.
Clicking on this button will show a dialog showing your names that can be selected.
When you select one of these names, it will be chosen as the name you want to set to your contract.
You can also enter an existing name in the text field.
This way, you don’t have to mint a new subname (and save gas!) and simply pick whichever name you would love to set for your contract
With the ability to use an existing name, we’ve cut down the effort it takes to name a contract when you already own a primary ENS name.
Our goal is for every contract on Ethereum to be named. Adding an option to use an existing name simplifies the naming process, giving users the choice to either create a new subname or simply use an existing name
It’s one more step in our broader mission to retire hex addresses for good from the Ethereum UX.
Head to Enscribe App and try to name your contract with an existing name.
The Enscribe team believes in the importance of having metrics to track our progress against our mission — eliminating hex contract addresses for users and making Ethereum safer. Ethereum Name Service (ENS) is central to this vision, but despite ENS adoption growing steadily, the gap between deployed contracts and named contracts remains significant.
That’s why we built a Dune Analytics dashboard to understand where ENS naming adoption for contracts stands today.
Our dashboard provides a number of key charts, these are outlined below.
Total Number of Named Contracts shows a count of how many contracts have primary ENS names
Total Number of Contracts That Can Be Named (ERC-173/ERC-5133) shows how many contracts deployed on Ethereum can be set a primary name. These include ERC-173 and ERC-5133 contracts
Monthly Contract Naming Activity shows contract naming activity since the last 4 years
Contract Names Set in Past 12 Months reveals how many contracts have been assigned a primary ENS name in the past 12 months
Most Recently Named Contracts shows the latest 1000 contracts with their primary ENS names sorted by date
By tracking these metrics, we directly measure the impact of our efforts at Enscribe. We want to see the number of named contracts on Ethereum increase, with a view to ultimately eliminating hex contract addresses for users.
Millions of contracts are still unnamed, and each one represents an opportunity to make Ethereum more user-friendly and safer.
Join us in shaping a more human-readable Ethereum. Head over to Enscribe and start naming your contracts today, then check the impact of your activity in our Dune dashboard.
Smart contracts power the onchain economy, but they lack proper identity infrastructure. When users encounter a contract address like 0x742d35cc567890c000c000c07c81c25d7df34793, they can't easily verify what it does, who built it, or whether it's safe to use.
Enscribe has been working to solve this through contract naming. Now we're taking the next step by proposing a new ENS Improvement Proposal that establishes a comprehensive metadata standard for smart contracts.
Trust Issues: Users can't easily verify if a contract is legitimate or malicious
Missing Documentation: No standard way to find a contract's docs, source code, or audit reports
Inconsistent Information: Wallets and dApps show different (or no) contract details
Poor Developer Experience: No standard API for contract discovery and metadata
While ENS enables human-readable contract names, the ecosystem lacks standardized metadata storage. Projects create custom solutions, users rely on centralized services, and critical information gets scattered across different platforms.
We've submitted an ENSIP that extends ENSIP-5 (Text Records) with standardized metadata fields for smart contracts. This creates one source of truth for contract information, stored directly in ENS records.
Imagine if instead of simply seeing a hex contract address you had a rich view of the contract such as this:
Our proposed standard would serve as a foundation to make such information available for smart contracts across Ethereum.
The proposal introduces a new resolver profile for complete compiler-generated metadata. Building on ENSIP-4's (Support for contract ABIs) multi-encoding approach, it supports:
JSON formats: Uncompressed and compressed
CBOR encoding: For onchain parsing
URI storage: IPFS, Arweave for large files
This metadata contains everything needed for contract verification: ABI definitions, compiler settings, source code hashes, and NatSpec documentation.
We've implemented this metadata standard for our own contract as a demonstration. You can see v0.enscribe.named.eth on ENS Manager with all the proposed metadata fields populated (some values are placeholder for now).
Since the ENS manager app doesn't yet render contract metadata optimally (it's designed for user profiles), here's how we envision displaying contract metadata in applications built for contracts:
Current ENS Manager view - shows metadata but not optimized for contracts
The difference is clear: contract-specific interfaces can organize and display metadata in ways that help developers and users understand what they're interacting with.
Enscribe makes smart contracts easier to trust by giving them human-readable names. This ENSIP extends that mission — moving from basic naming to complete contract identity infrastructure.
The proposal includes technical specifications, implementation examples, and design rationale. Whether you build protocols, develop wallets, or use onchain applications, your input helps create better infrastructure.
Join the discussion and help us build standardized, discoverable contract identity for the onchain world. You can also share your thoughts, suggestions, and any issues you encounter through our Discord community, Telegram, or X.
With Enscribe, our mission has always been simple yet ambitious — to eliminate hex contract addresses from the Ethereum user experience. Hex strings like 0x123abc… are cryptic, intimidating and unfriendly to users.
ENS transforms these meaningless identifiers into human-readable names like vitalik.eth just like DNS resolves domain names on the internet to IP addresses.
With our latest update, we’re eliminating these annoying hex addresses from URLs, further enhancing Enscribe’s UX.
A Friendlier Way to Explore Contracts and Accounts
Previously, if you wanted to explore details about an account or contract on Enscribe, you had to navigate using its hexadecimal address:
Whether it’s an EOA (Externally Owned Account) or a smart contract, Enscribe will resolve the ENS name and fetch its details.
This doesn’t just work for the mainnet. Thanks to the support for resolving names on Layer 2 chains, we can also use a Layer 2 chain-id and the name with it, such as
Ethereum’s UX still leans heavily on raw addresses, making the ecosystem less approachable for everyday users. Our goal at Enscribe is to flip that narrative, to make names the default, and hex addresses optional. By supporting ENS names everywhere we display or consume on-chain data, we’re moving toward an Ethereum experience that’s:
Human-friendly → Users interact with alice.eth, not 0x4b2...9f7.
Consistent → Works across EOAs and contracts alike.
Aligned with ENS adoption → Encouraging the ecosystem to name their contracts and improve discoverability.
Enscribe isn’t just about contract naming — we’re helping reshape Ethereum’s UX around names, not hex.
You can try it out now in the Enscribe app, check out vitalik.eth at
With Enscribe, we’re always looking for ways to make viewing smart contracts details simpler and safer for users. Our latest update to the Contract Details page introduces two subtle yet impactful changes designed to improve clarity and usability for our users.
When looking at contract information, it can be a little overwhelming when trying to identify what the primary name of the contract is. To simplify this, we’ve introduced a blue tick next to primary contract names.
Now, when you view the Contract Details page for a particular contract, you can easily see if a primary name is set for the contract.
We’ve also shown a tooltip that tells you you are looking at a primary name:
For contracts that have no primary name set but do have at least one forward resolution name set, we now also show that name:
However, to make sure that we differentiate between primary and forward resolution names, we show the usual cautionary warning sign as well as explain it in the tooltip:
Contracts without names can make browsing blockchain data cumbersome. That’s why we’ve added the Name It! button next to contract addresses that:
Don’t yet have a primary name set, or
Have at least one forward resolution name available.
Here’s a proxy contract that has no name set:
Here’s a contract that doesn’t have a primary name set but has a forward resolution name set:
Clicking the button takes you straight to the Name Contract page on Enscribe, with the contract address pre-filled. This saves you time, reduces manual input and ensures you can seamlessly add meaningful, human-readable names to your contracts.
By making it easier to name your contracts, we’re helping you keep your on-chain activity clear and structured.
With these enhancements, we’re continuing our mission to make on-chain data more accessible and user-friendly. Whether you’re a developer, an ENS enthusiast, or just someone managing multiple contracts for a project, these updates simplify contract name identification and improve overall interaction experience on Enscribe
Go check your contract on the Contract Details page today and let us know what you think about them on our X/Telegram/Discord channels.
L2 primary names solve a fundamental problem in the multi-chain Ethereum ecosystem. A single DApp can have different contract addresses across various Layer 2 networks, or sometimes the same address (often due to CREATE2 deployments). Without a standard way to name them, users and developers must manage a confusing list of addresses.
According to ENSIP-19, L2 primary names enable reverse and primary name resolution for all coin types across the multichain Ethereum ecosystem. This standardizes how ENS names resolve to different addresses based on the network, making the ecosystem more legible and trustworthy. This works regardless whether the contract's address is the same or different across networks.
This is possible through a coinType parameter in the ENS resolver function addr(bytes32 node, uint256 coinType), which specifies the network. A single ENS name like mycontract.eth can be configured to point to the correct contract address on each chain.
Enscribe supports L2 primary names across five Layer 2 networks:
Optimism (Mainnet & Sepolia)
Arbitrum (Mainnet & Sepolia)
Scroll (Mainnet & Sepolia)
Base (Mainnet & Sepolia)
Linea (Mainnet & Sepolia)
The feature works in two directions. Forward resolution means your ENS name resolves to the correct contract address on each L2. Reverse resolution means your contract address resolves back to your ENS name on each L2.
Example: If you set up myname.eth → 0x123... on Ethereum and Base:
Forward Resolution:
Ethereum: Coin type 60 (0x3c) - myname.eth resolves to 0x123...
Base: Coin type 2147483653 (0x80002105) - myname.eth resolves to 0x123...
Reverse Resolution:
Ethereum: 0x123...addr.reverse - resolves back to myname.eth
Base: 0x123...80014a34.reverse - resolves back to myname.eth
Note: L2 primary names for Linea and Base are different from currently supported .linea.eth and .base.eth names. L2 primary names work through ENSIP-19 coin types, while .linea.eth and .base.eth are separate ENS domains.
You must set up L2 primary names from an L1 chain (Ethereum mainnet or Sepolia). This process cannot be done by connecting directly to an L2 network.
The reason is that the core ENS infrastructure, which manage name registration and resolution rules, reside on L1. Key actions, like creating subnames and configuring them to point to different addresses on various L2s—must be recorded on these foundational L1 contracts to ensure a single, authoritative source of truth.
Enscribe supports three main scenarios for setting up L2 primary names:
L1 + L2 Naming: Set primary names on both L1 and selected L2 chains when your contract has the same address across all networks
L2 Only Naming: Skip L1 naming and set primary names only on specific L2 chains
Multi-Address Naming: Use the same ENS name for different contract addresses on different L2 chains
If you want to set up primary names only on specific L2 chains without L1 naming:
Follow steps 1-3 from Case 1
Enable "Skip L1 Naming" to skip L1 forward and reverse resolution
Submit to execute only L2-related steps
Case 3: Different Contract Addresses on Different L2 Chains
If you deployed the same contract on different L2 chains but it has different contract addresses, you can use the same ENS name as the primary name for all chains.
Use the same name label and ENS parent, then:
Enter the first contract address and select its corresponding L2 chain
Enable "Skip L1 Naming" to focus only on L2 naming
Execute the naming process
Repeat for each different contract address on different L2 chains
Don't worry — it won't create a subname every time on L1. The subname creation happens only once, and subsequent operations just set up the L2 primary names.
Note: The default Enscribe parent domain, deployd.eth, is not yet compatible with L2 primary names. For now, please use your own ENS domain as the parent.
We will resolve this issue in our next release, which will involve redeploying the Enscribe contract.
Contract deployers get a unified identity for their contracts across all chains. Users can interact with your contract using the same name regardless of which chain they're on, eliminating the need to explain different addresses for the same contract.
Users benefit from simplified interactions — they can use the same ENS name to interact with contracts across chains. This reduces errors from sending transactions to wrong addresses and makes it easier to find and verify contract addresses.
The broader ecosystem sees improved interoperability as cross-chain contract interactions work smoothly. Enhanced security comes from reduced risk of address confusion, leading to a more intuitive multi-chain experience.
Ready to give your contracts a unified identity across the Ethereum ecosystem? Visit app.enscribe.xyz, connect your wallet to Ethereum mainnet or Sepolia, navigate to "Name Contract", enter your contract details, select your desired L2 chains, and execute the naming process.
We want to hear your experience with L2 primary names. Share your thoughts, suggestions, and any issues you encounter through our Discord community, Telegram, or Twitter/X.
L2 primary names help make the multi-chain Ethereum ecosystem more legible and trustworthy. We're excited to see how this feature helps developers and users navigate the onchain landscape more effectively.
We’re excited to announce that Safe smart account wallet support is now live in Enscribe. Whilst Enscribe already has support for commonly used wallets like Metamask and Coinbase, Safe was not fully compatible..
This update enables deploying a new contract and setting an ENS name for it or naming an existing contract with your Safe wallet with full control over transaction approval and execution.
Safe is commonly used as a multi-signature wallet in the Ethereum ecosystem. A Safe wallet account can have multiple Ethereum accounts configured as signers behind it. When a transaction is to be approved and executed, all signers must sign & execute that transaction.
This process can happen asynchronously without waiting for approvals from all the signers. This is unlike executing transactions with a wallet like Metamask where every transaction request will block until it is either approved or rejected.
It’s ideal for workflows where transparency and decentralized control are required.
Deploy new contracts with ENS names set using your Safe wallet.
Name existing contracts with ENS names from your Safe address.
Supporting Safe required a different approach from the typical MetaMask-style interactions, where each transaction prompts a popup that demands immediate attention. With Safe, Enscribe queues transactions, so they can be approved via the Safe App.
Connecting to a Safe wallet is slightly different from connecting to Metamask or Coinbaser wallet. To connect to your Safe wallet, click on the Connect button on the top right corner on Enscribe:
On the Connect a Wallet popup, select WalletConnect
Now click on the OPEN button to open the WalletConnect modal
Click on Copy link and go to your Safe wallet app. Click on the WalletConnect icon on the top bar
Now paste the copied link in the Pairing code field in the popup
You should now see Enscribe as connected app
Once connected, you’ll see your Safe wallet account shown as connected in Enscribe as well as in the Safe App.
With Safe wallet, our naming-related transactions are sent to the Safe wallet queue without waiting for them to complete. This is because Safe wallet intercepts our Enscribe transactions & executes them in its own multisig transactions. Therefore, Enscribe doesn’t have knowledge of these transactions whilst pending.
Enscribe differentiates between a Safe wallet and a wallet like Metamask and will modify the behavior of waiting for transactions to complete accordingly. This is how pending transactions look like in the Safe wallet:
On executing the above pending transaction to set the primary name of a contract, we can see the contract details in Enscribe:
We can also rename the contract we just deployed. Let’s say we rename it to safewallet13.testapp.eth. Like before, two transactions - setting forward resolution and setting reverse resolution - will be kicked off in the Safe wallet app:
And we see two transactions in the Safe wallet app that we can bulk execute:
We see our contract now has a new name:
Having full support for Safe ensures that teams protecting key contracts with a multisig can properly name their contracts with Enscribe.
If you have Safe controlled contracts you wish to name, you can try naming your contracts with Safe wallet at app.enscribe.xyz!
At Enscribe, we're dedicated to improving the onchain experience for users. One part of this is by making smart contract addresses more human-readable and user-friendly by simplifying contract naming with ENS.
While making the experience more user-friendly, we also want to improve the UI/UX of the Enscribe platform. In line with this commitment, we're excited to announce a key enhancement: Enscribe now fully supports a dark mode theme!
You can find the theme toggle button in the top right corner of the Enscribe application. The white sun icon indicates the light theme, and the dark moon icon activates the new dark theme.
Every screen within Enscribe now adapts to dark mode, designed with carefully chosen color contrasts for optimal readability. This ensures a consistent and comfortable visual experience across the entire application, whether you're deploying a new contract or reviewing your existing ones.
Deploy a new smart contract with primary name
Name an existing smart contract
Transaction loading state
Successful contract naming modal
View account details along with Ethereum Follow Protocol card
Detailed contract information view
Browse your deployed named and unnamed contracts
We've ensured that key workflows, from deploying new contracts and naming existing ones to viewing your account details and managing your contracts, are all optimized for the new dark theme. The improved contrast aims to make your interactions with Enscribe smoother and less straining on the eyes.
One of the core objectives of Enscribe is to make smart contracts safer for users. Our latest feature builds on that objective by connecting Enscribe contract details with the Open Labels Initiative (OLI), a project focused on providing smart contract labels via attestations.
The Open Labels Initiative is a standardized framework and data model for address labeling. Think of OLI as a public bulletin board for contract facts — users can attach signed statements, called attestations, to a contract address. These attestations, also referred to as labels, might indicate different bits and pieces of information such as the Owner Project, Category, Subcategory, etc. Here’s a sample of smart contracts and their labels from labels.growthepie.com:
Attestations on OLI are public and verifiable. Anyone can view them, and anyone can contribute new ones enabling community contributions to the initiative. OLI helps surface credible, onchain or offchain information about contracts.
On every Contract Details page in Enscribe, you’ll now see a new section “Contract Attestations”, under this will be a button ‘Label on OLI’ (or ‘Labelled on OLI’).
In the above image, we see the contract information as usual and the ‘Labelled on OLI’ button since this contract has attestations.
If attestations exist for a contract, clicking the button opens the contract’s attestation page on the OLI website. There, you can review attestations that have been made about the contract such as who made them and time of the attestations.
If no attestations are present, the same button will now say ‘Label on OLI’:
Clicking on the button will take you to the attestation submission form. The contract address and chain is pre-filled, so you just need to add any additional information on the attestation submission form.
Enscribe’s mission is to make Ethereum safer for users by making apps more trustworthy and easier to navigate. Open, permissionless labels help build trust in contract usage and protocol adoption. Integrating with OLI means anyone can check a contract’s reputation or contribute to its public profile.
To try it out, visit any contract details page on Enscribe and click the OLI button to either see the attestations or add one using the attestation submission form.