Skip to main content
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe
View all authors

The Enscribe homepage now features card-based navigation and a new search modal

Β· 2 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

The Enscribe homepage has been redesigned. The new layout uses three feature cards for clearer navigation, and the search now resolves ENS names in your browser before making any backend calls.

Enscribe main page with card-based design

Why We Changed It​

As Enscribe added the new feature Batch Naming, the text-heavy homepage made it hard for new users to find what they needed.

The search bar also created unnecessary load. Users would search for an ENS name, navigate to a details page, and only then discover the name didn't resolve or pointed somewhere unexpected or they were on the wrong chain. This meant:

  • Wasted API calls for typos and invalid names
  • Extra clicks to discover resolution failures
  • Backend queries for exploratory searches

The redesign fixes both issues.

Card-Based Navigation​

The homepage now shows three feature cards:

πŸ“„ Name Contract​

Name existing smart contracts with ENS names. Set forward and reverse resolution for contracts you've already deployed.

πŸš€ Deploy Contract​

Deploy and name contracts in one flow. Skip the extra step of naming after deployment.

πŸ“š Batch Naming​

Name multiple contracts under a single parent domain.

Client-Side ENS Resolution​

The search bar is now a modal that resolves ENS names before you navigate.

Search modal with ENS resolution

How It Works​

  1. Click "Explore Contract or Wallet"
  2. Type an ENS name like vitalik.eth or 0x1234...5678
  3. See the resolved address: vitalik.eth β†’ 0x1234...5678 on the desired chain
  4. Verify it's correct and resolves to an address, then click to view details

If the name doesn't resolve, you see it immediately β€” no wasted navigation.

Demo of search modal

Why This Matters​

For users:

  • Catch typos before navigating
  • Verify resolution and chain before committing

For the platform:

  • ENS resolution happens in the browser using viem
  • Only validated searches hit the backend

The new design is live at Enscribe. We'd like to hear what you think:

  • Does the card layout help you find what you need?
  • Is the search modal helpful?
  • What would you like to see in the future?

Reach out on Discord, Telegram, or X.

Happy naming! πŸš€

Batch Naming - Name Multiple Contracts in One Go

Β· 6 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

Enscribe has shipped Contract Batch Naming feature for our Enscribe UI app. Teams and projects can now name multiple smart contracts at once under a single parent domain. This reduces the contract naming process for projects with multiple deployed contracts from hours to minutes.

Batch naming page

Why Batch Naming?​

Managing multiple smart contracts across different chains has always been a challenge and time-consuming. Whether you're a DAO with governance contracts, a DeFi with multiple vault, protocol, core and utility contracts, or an infrastructure project with contracts deployed across chains, naming each contract individually means repeating the same steps: creating subnames, setting forward resolutions, and setting reverse resolutions. Each step costs gas.

When we worked with Nouns DAO to name their contracts, we saw this problem firsthand. They had to create subnames, set forward resolutions, and set reverse resolutions for each contract as a new step and their governance only allows maximum 10 transaction in a single proposal. This was their first proposal: ENS x Nouns, Name our Smart Contracts which didn't get through because of this issue.

Thus we built the Enscribe V2 contract to support batch naming with multi-chain support. This contract is now live on Ethereum mainnet and Sepolia testnet. You can read more about it in this blog post. Using the Enscribe V2 contract, you can name multiple contracts in one transaction.

We are now adding this batch naming feature support to our Enscribe UI app.

How Batch Naming Works​

Batch naming uses the Enscribe V2 contract's setNameBatch() function. This involves a single transaction for creating subnames under the same parent domain and setting forward resolutions for all contracts at once. For example, if you're naming 10 contracts under myproject.eth, you just need one transaction to create 10 subnames and forward resolutions for all 10 contracts.

But for setting primary names, you need to execute one transaction for each compatible contract (contracts that are ownable/ERC-173 compliant) to set reverse resolution. Here's what happens under the hood:

The Technical Flow​

  1. Operator Access: First, Enscribe requests operator approval for your parent ENS domain. This is a one-time permission that allows the Enscribe contract to create subnames under your domain.

  2. Batch Creation: All contract addresses and their corresponding names are sent in a single transaction to the Enscribe V2 contract. This creates subnames and sets forward resolutions for all contracts at once.

  3. Reverse Resolution (L1): For contracts which are ownable/ERC-173 compliant and owned by your wallet, Enscribe sets up reverse resolution on Ethereum mainnet (or testnet), enabling address-to-name lookups.

  4. L2 Primary Names: If you've selected L2 chains, Enscribe automatically switches to each chain and sets up primary names for the contracts there, ensuring consistent naming across all networks.

  5. Operator Revocation: Finally, operator access is revoked, returning full control of your ENS domain to you.

All of this happens in one modal flow, with clear progress indicators for each step.

Batch naming form

Parent Subdomains Support​

Batch naming supports automatic parent subdomain creation. If you're naming contracts hierarchically (e.g., vault1.defi.myproject.eth, vault2.defi.myproject.eth), Enscribe automatically creates the intermediate parent (defi.myproject.eth) with no forward resolution. This keeps your namespace organized.

Note that each new level of parent subdomain requires a new batch naming transaction. For example, if you're naming three contracts under myproject.eth (app1.myproject.eth, app2.myproject.eth, app3.myproject.eth) and two more contracts under defi.myproject.eth (vault1.defi.myproject.eth, vault2.defi.myproject.eth), you need two separate batch naming transactions:

  1. First transaction: app1.myproject.eth, app2.myproject.eth, app3.myproject.eth, defi.myproject.eth
  2. Second transaction: vault1.defi.myproject.eth, vault2.defi.myproject.eth

Step-by-Step Guide: Batch Naming Your Contracts​

Let's walk through naming multiple contracts using batch naming.

1. Navigate to Batch Naming​

Head to app.enscribe.xyz and click on "Batch Naming" from the homepage.

2. Choose Your Parent Domain​

Select the parent ENS domain under which all your contracts will be named. You can use:

  • Your project's ENS domain (e.g., myproject.eth)
  • The default Enscribe parent (deployd.eth)
Operator Access

Batch naming requires operator access to create subnames. An info tooltip explains this next to the Parent Domain field. Don't worryβ€”access is revoked after naming completes or else it can be revoked manually anytime.

3. Add Your Contracts​

Enter your contract addresses and their desired names. You can:

  • Add contracts one by one using the "Add Entry" button or use Upload CSV to import a CSV file with contract addresses and names.
  • You can also download a template CSV file to get started with the format. It has two columns - address and name.
  • Use hierarchical names with dots (e.g., vault1.defi, vault2.defi)
  • Mix different types of contracts in the same batch

Validation Features:

  • Real-time validation of contract addresses
  • Duplicate address detection
  • Duplicate name detection
  • Invalid label format warnings
  • Auto-generated parent subdomains highlighted

4. Advanced Options: L2 Chain Selection​

Expand the Advanced Options section to configure L2 primary names.

Advanced options with L2 selection

Click "Choose L2 Chains" to select which Layer 2 networks you want to set up primary names on:

  • Optimism
  • Arbitrum
  • Base
  • Scroll
  • Linea

The system will add the corresponding coin types and create additional transaction steps to switch to each chain and set primary names.

If you only want to set up L2 primary names without L1 forward/reverse resolution, enable "Skip L1 Naming" in the Advanced Options.

5. Review and Submit​

Once you've added all contracts and configured your options, click "Name Your Contracts". The system will:

  • Validate all entries
  • Verify contract ownership (for reverse resolution)
  • Add steps for naming process

6. Execute Transaction Steps​

A modal will guide you through each step of the process:

Transaction steps modal

Step Progress:

  • βœ… Grant operator access
  • βœ… Create subnames and set forward resolution (batched)
  • βœ… Set reverse records (for owned contracts)
  • βœ… Switch to L2 chains and set primary names
  • βœ… Revoke operator access

Once all steps complete, you'll see a success screen showing:

  • Your parent domain
  • An expandable list of all named contracts with their addresses
  • Share buttons for X/Twitter and Farcaster
  • POAP claiming button (for mainnet deployments)

Limitations and Considerations​

Prerequisites​

  • You must connect from an L1 chain (Ethereum mainnet or Sepolia)
  • You need to give operator access for the parent domain (granted during the flow)
  • For reverse resolution, you must own the contract (also contract must be ownable/ERC173 compatible)

Gas Considerations​

Batch naming is more gas-efficient than individual naming, but naming many contracts still requires significant gas. The transaction cost will depend on:

  • Number of contracts in the batch
  • Number of L2 chains selected

Maximum recommended batch size: 50 contracts (gas limits may reach for larger batches)

Try Batch Naming Today​

Ready to name multiple contracts? Visit app.enscribe.xyz, connect your wallet to Ethereum mainnet or Sepolia, navigate to "Batch Naming", and start naming.

We'd love to hear about your batch naming experience:

Happy batch naming! πŸš€

Enscribe Now Available as a Safe App

Β· 4 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

Enscribe is now available as a native Safe app. You can add Enscribe directly to your Safe environment and name contracts using your multisig wallet without leaving the Safe interface.

This update makes it easier for teams and DAOs to manage contract naming through their existing Safe workflows.

Enscribe Safe App

Why This Matters​

If you manage contracts through a Safe multisig, you can now:

  • Name contracts directly from the Safe interface
  • Deploy new contracts with ENS names set using your Safe wallet
  • Queue naming transactions for other signers to review
  • Execute contract naming once your signing threshold is met
  • Keep all contract management in one place

Previously, connecting Enscribe to Safe required WalletConnect, which added friction to the process. With native Safe SDK integration, Enscribe works as a custom Safe app. Add it once, and it's available whenever you need it.

When you use Enscribe inside Safe, the contract naming process creates multiple transactions. These transactions are visible for you to review before signing, added to your Safe's transaction queue, shareable with other signers in your Safe, and executable by any signer once the signing threshold is reached. This workflow matches how Safe handles all multisig operations, making contract naming part of your standard governance process.

Adding Enscribe to Your Safe​

Here's how to add Enscribe as a custom app to your Safe:

Use this link to add Enscribe directly to your Safe.

If the link doesn't work, follow the manual steps below.

Manual Installation​

Step 1: Open Your Safe​

Navigate to app.safe.global and select the Safe you want to use.

Step 2: Access the Apps Menu​

Click on "Apps" in the left sidebar of your Safe interface.

Step 3: Add Custom App​

  1. Click "Add custom app" in the top right
  2. Enter the Enscribe app URL: https://app.enscribe.xyz
  3. Confirm the app details
  4. Click "Add"

Enscribe will now appear in your Safe's app list.

Step 4: Open Enscribe​

Click on Enscribe from your apps list to launch it within Safe.

Steps to manually add Enscribe to Safe

Naming a Contract from Safe​

Once Enscribe is added to your Safe, you can name contracts using the same interface you're familiar with:

Step 1: Connect to Enscribe​

Open the Enscribe app from your Safe. The app will detect your Safe wallet automatically and connect.

Step 2: Choose Your Chain​

Select the network where your contract is deployed. Enscribe supports Ethereum Mainnet, Base, Linea, Optimism, Arbitrum, Scroll, and their testnets.

Step 3: Enter Contract Details​

Provide the contract address and choose the ENS name you want to assign. Enscribe will guide you through the naming process.

Step 4: Review Transactions​

Enscribe will show you the transactions needed to complete the naming process. This typically includes:

  • Creating ENS subname
  • Setting forward resolution for your contract
  • Setting the primary name

Step 5: Sign and Queue​

When you sign these transactions in Safe:

  • They're added to your Safe's transaction queue
  • Other signers can review them
  • Transactions show up in the "Queue" tab of your Safe
  • You can share the queue with your team

Step 6: Execute After Threshold​

Once enough signers approve the transactions (based on your Safe's signing threshold), any signer can execute them. The contract naming completes when all transactions are confirmed onchain.

Managing Multiple Contracts​

If you're naming multiple contracts, you can queue all the transactions before executing any of them. This gives your team time to review everything together.

Each contract naming operation creates its own set of transactions in the queue. Signers can approve them individually or in batches, depending on your workflow.

Once all the transactions are approved or signed by the required number of signers, you can execute them all at once in a batched transaction, this will save you gas and time.

Feedback and Community​

Enscribe makes smart contracts easier to identify by giving them human-readable names. With native Safe support, teams can now manage contract naming through their existing multisig workflows.

If you have feedback or feature requests for the Safe app experience, reach out through our socials - X, Discord and Telegram

Happy naming! πŸš€

EnscribeV2 is now live on Ethereum mainnet

Β· 4 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

Enscribe V2 is now deployed on Ethereum mainnet. This upgrade brings batch operations, multi-chain support, and gas optimizations that make naming large numbers of contracts practical.

Contract Addresses​

Ethereum Mainnet:

Testnet (Sepolia):

The Problem: Naming Contracts at Scale​

Projects deploying multiple smart contracts face a challenge: each contract needs a separate ENS transaction to get a human-readable name. For a project with 10, 20, or 100+ contracts, this means:

  • Dozens of individual transactions
  • High cumulative gas costs
  • Hours of manual execution
  • Complex workflow coordination

A DAO deploying governance contracts, treasury modules, and token contracts previously needed separate ENS transactions for each β€” monitoring every transaction and managing a complex deployment process.

Enscribe V2 solves this.

What's New​

Batch Contract Naming​

Name multiple existing contracts in a single transaction.

// Name 10 contracts at once
address[] memory contracts = [
0x1234..., // governance.dao.eth
0x5678..., // treasury.dao.eth
0x9abc..., // token.dao.eth
0x0000.... // 0x0 address to reserve the subname
];

string[] memory labels = ["governance", "treasury", "token", "reserve"];

enscribeV2.setNameBatch(
contracts,
labels,
"dao.eth",
[60, 2147492101] // Ethereum and Base cointypes
);

Note: The reserve subname is created with the address(0) address. This is useful when you just want to create the subname but not set an address yet.

ENSIP-19 Multi-Chain Support​

Set forward resolution for multiple chains at once:

uint256[] memory coinTypes = [
60, // Ethereum
2147492101, // Base
42161, // Arbitrum
10 // Optimism
];

enscribeV2.setName(
contractAddress,
"bridge",
"protocol.eth",
coinTypes
);

This matters for cross-chain protocols and multi-chain deployments where the same contract needs to resolve on different networks.

Simpler API​

Before V2:

bytes32 parentNode = namehash("myproject.eth"); // Manual computation
enscribe.setName(addr, "app", "myproject.eth", parentNode);

With V2:

enscribe.setName(addr, "app", "myproject.eth"); // Computed automatically

The contract now computes parent nodes using ENS's NameCoder library.

Reserve Names Without Addresses​

Create subnames without setting an address:

address[] memory contracts = [
0x1234..., // Active contract
address(0), // Reserve "staging", 0x0000000000000000000000000000000000000000 address
0x5678... // Active contract
];

enscribeV2.setNameBatch(
contracts,
["prod", "staging", "analytics"],
"myproject.eth"
);

As demontrated in Batch Contract Naming section also, using address(0) creates the subname but skips forward resolution β€” useful for just creating the subname.

EnscribeV2 Functions

Projects can now:

  • Name dozens of contracts in one transaction
  • Save gas through batch operations and new gas optimizations
  • Can name contracts on multiple chains at once
  • Fully ENSIP-19 compatible

Technical Improvements​

V2 includes several optimizations:

  • ENS NameCoder Integration: Uses official ENS library gas savings per operation
  • OpenZeppelin Create2: Deterministic contract deployment with industry-standard implementation
  • Custom Errors and Events: ~50% gas savings on reverts compared to string messages
  • Internal Optimizations: Automatic subname existence checking and address validation

What's Next​

Enscribe V2 contracts are live and ready to use via web3 libraries or transaction builders like Gnosis Safe.

Coming Soon:

  • UI updates for batch operations and multi-chain support on Enscribe app
  • EnscribeV2 integration to our Enscribe library
  • EnscribeV2 for Basenames

Building Contract Identity​

Enscribe makes smart contracts easier to trust by giving them human-readable names. Earlier this year, we proposed an ENSIP for contract metadata standards. V2's batch capabilities and multi-chain support lay the groundwork for that vision β€” making it practical for projects to build complete, discoverable contract identities.

Whether you're deploying a DeFi protocol, launching a DAO, or building any multi-contract system, Enscribe V2 helps you establish clear contract identity from day one.

Questions? Join our Discord, Telegram or reach out on X.

Happy naming! πŸš€

Introducing the Guides Section

Β· 2 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

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.

What's New​

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.

Guides Section Overview The new Guides section

What You'll Find​

Quick Start Guides​

We organized the most common use cases:

Conceptual Guides​

For developers who want to understand the underlying concepts:

We will be expanding the guides and add more real world examples and use cases shortly.

Share Your Feedback​

What guides would help your development workflow? Join our Discord, Telegram, or X to share ideas and connect with other developers using Enscribe.

Visit the Guides section to start naming your smart contracts.

Happy naming! πŸš€

ENSIP: Contract Metadata Standard and Text Records

Β· 4 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

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.

The Problem with Contract Identity​

Smart contracts face several identity challenges:

  • 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.

Our Proposed Solution​

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:

Enscribe contract profile showing organized technical details

Our proposed standard would serve as a foundation to make such information available for smart contracts across Ethereum.

New Text Record Fields​

Contract Classification:

  • category: Contract type (defi, dao, utility, gaming)
  • license: Software license (MIT, Apache-2.0)
  • docs: Official documentation links

Security Information:

  • audits: Structured audit report data with auditor names and report links
  • proxy: Proxy contract details and implementation addresses

Compiled Metadata Resolver​

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.

Real Impact​

This standard solves concrete problems:

  • Users can verify contract authenticity before signing transactions
  • Developers get standard APIs for contract metadata across all applications
  • Projects build professional contract identity that increases user trust
  • Ecosystem reduces dependence on centralized services

Contract Metadata in Action​

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:

ENS Manager showing basic contract metadata fields Current ENS Manager view - shows metadata but not optimized for contracts

Enscribe contract profile view Enscribe's contract-focused interface - Technical details, security audits, and expanded metadata view

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.

We Need Your Input​

The proposal draws from our experience building contract naming tools, but community feedback shapes the final standard.

Help us refine:

  • Technical implementation approach
  • Additional metadata fields
  • Wallet and dApp integration needs
  • Use cases we should address

Review and Feedback​

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.

Read the full proposal: ENSIP: Contract Metadata Standard and Text Records

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.

Happy naming! πŸš€

Enscribe Now Supports ENS L2 Primary Names

Β· 7 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

Enscribe now supports L2 primary names, extending our smart contract naming capabilities across the Ethereum ecosystem. This feature helps developers maintain consistent contract identities across multiple Layer 2 networks.

L2 primary names interface

What Are L2 Primary Names?​

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.

  • Coin type 60 (0x3c) for Ethereum mainnet
  • Coin type 2147483658 (0x8000000a) for Optimism
  • Coin type 2147483653 (0x80002105) for Base
  • Coin type 2147483656 (0x8000e708) for Linea
  • Coin type 2147483652 (0x8000a4b1) for Arbitrum
  • Coin type 2147483657 (0x80082750) for Scroll

L2 Primary Names in Enscribe​

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.

How to Use L2 Primary Names​

L2 primary name filled

Prerequisites​

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.

L2 chain warning

Enscribe supports three main scenarios for setting up L2 primary names:

  1. L1 + L2 Naming: Set primary names on both L1 and selected L2 chains when your contract has the same address across all networks
  2. L2 Only Naming: Skip L1 naming and set primary names only on specific L2 chains
  3. Multi-Address Naming: Use the same ENS name for different contract addresses on different L2 chains

Case 1: Same Contract Address Across All Chains​

This approach is for contracts that have the same address on different L2 chains. You can name this contract on all L2 chains together.

  1. Connect to L1: Connect your wallet to Ethereum mainnet or Sepolia
  2. Enter contract details:
    • Contract Address: Your contract's address on L1
    • Contract Name: Choose a name for your contract
    • ENS Parent: Select your preferred ENS parent domain
  3. Select L2 chains: Click "Choose L2 Chains" and select which L2 networks you want to set up
  4. Review steps: The system shows all steps that will execute:
    • Create subname on L1
    • Set forward resolution on L1
    • Set reverse resolution on L1 (if applicable)
    • Set forward resolution on each selected L2
    • Switch to each L2 and set primary name
  5. Execute transactions: The modal guides you through each step, automatically switching chains

Case 1 transaction steps

Case 2: Name Only on Selected L2 Chains​

If you want to set up primary names only on specific L2 chains without L1 naming:

  1. Follow steps 1-3 from Case 1
  2. Enable "Skip L1 Naming" to skip L1 forward and reverse resolution
  3. Submit to execute only L2-related steps

Case 1 transaction steps with Skip L1 naming

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:

  1. Enter the first contract address and select its corresponding L2 chain
  2. Enable "Skip L1 Naming" to focus only on L2 naming
  3. Execute the naming process
  4. 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.

Benefits for Different Users​

For Contract Deployers​

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.

For Users​

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.

For the Ecosystem​

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.

Video Tutorials​

Complete walkthroughs for above 2 use cases: same address across chains and L2-only naming

What's Next​

L2 primary names support represents a step forward in making the multi-chain Ethereum ecosystem more legible. We plan to:

  • Add more L2 networks as the ENS team adds support for more L2 EVM chains
  • Improve the user experience with better chain switching and transaction flow
  • Offer analytics insights into L2 primary name usage and adoption

Try It Out​

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.

Feedback and Community​

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.

Happy naming across chains! πŸš€

Enscribe UI Now Supports Dark Mode

Β· 2 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

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!

Enscribe Dark Mode ToggleEnscribe Light Mode Toggle

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 Contract Deploy a new smart contract with primary name

Name Existing Contract Name an existing smart contract

Contract Naming Loading Transaction loading state

Contract Naming Successful Successful contract naming modal

Account Details View account details along with Ethereum Follow Protocol card

Contract Details Detailed contract information view

My Contract History 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.

What's Next​

This update is part of our ongoing commitment to improve the Enscribe's user experience and make smart contracts safer for users on Ethereum.

We build based on community feedback. Share your thoughts and suggestions in our Discord community or Telegram, or follow updates on Twitter/X.

Try out the new dark mode today at app.enscribe.xyz!

Happy naming! πŸš€

Explore Accounts, Contracts and ENS Names Across Multiple Chains

Β· 5 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

We've updated Enscribe to make contract exploration clear and useful across multiple networks. This update focuses on direct sharing links, multi-chain support, and better ENS integration to help you identify and trust smart contracts.

What's New​

This update adds several improvements to the Enscribe platform:

  • Universal Search - Search for any address (EOA or contract) or ENS name without connecting your wallet first
  • Cross-Chain Exploration - View smart contracts and accounts on Ethereum, Linea, and Base networks
  • Contract Verification Display - See verification status from Sourcify, Etherscan, and Blockscout at a glance
  • ENS Details - Clear visibility of all associated and owned ENS names with expiry status
  • Shareable URLs - Direct links to any address on any supported chain

The updated search bar lets you look up any Ethereum address or ENS name without connecting your wallet first. Just paste a 0x address or type an ENS name, and Enscribe immediately shows you the relevant details.

Universal Search Bar

The search works with:

  • Standard Ethereum addresses (0x...)
  • ENS names
  • Automatic detection of which chain to use

The ENS resolution works correctly across different networks, using mainnet resolvers for production chains and Sepolia for test networks, then directing you to the right page based on chain context.

The Explore Page​

Our new Explore page serves as a central hub for getting ENS details for any address onchain. It detects whether you're looking at a smart contract or a regular account (EOA) and shows you specific information that matters for each type.

You can directly access any address using this URL format:

https://app.enscribe.xyz/explore/<chainId>/<address>

This standardized URL structure makes addresses easy to bookmark and share with others, allowing for collaborative exploration of the Ethereum ecosystem.

Contract Details View​

When viewing a contract, the display includes:

  • The contract's primary ENS name (if registered) with color-coded expiry status icons:
    • Green checkmark: Valid registration (more than 3 months until expiry)
    • Yellow exclamation: Expiring soon (within 3 months)
    • Red X: Expired (in grace period)
  • Verification status across multiple sources (Sourcify, Etherscan, Blockscout)
  • Direct links to view verified source code
  • If not verified, user can select "Verify" button to verify the contract on respective platform
  • All ENS names associated with this contract address
  • ENS names owned or managed by this contract with expiration status
  • Copy buttons for addresses and names with visual confirmation

Contract Details View

This clear layout helps developers quickly confirm contract identity and trustworthiness without navigating between multiple tools.

Account Details View​

For regular accounts (EOAs), the page shows:

  • Primary ENS name (if available) with appropriate expiry status icon similar to contract view
  • All associated ENS names pointing to this address
  • ENS names owned or managed by this address with expiry information
  • Copy functionality for addresses and names

Account Details View

Both account and contract views include external links β€” addresses link to Etherscan while ENS names link to the ENS app. When you click on an ENS name that a contract or account owns, Enscribe resolves it to an address and opens that address in a new tab within Enscribe.

The ENS name resolution for owned names:

  • Opens resolved addresses in a new tab for convenient exploration
  • Shows toast notifications for failed resolutions

Smart Chain Selector​

The chain selector helps you navigate between networks while examining an address. It sits at the top of the interface and changes how it works based on whether your wallet is connected.

When No Wallet is Connected:

Chain Selector - wallet disconnected

  • Choose any supported chain from the dropdown
  • Switch networks to compare the same address across chains
  • All data loads specifically for the selected network

When a Wallet is Connected:

Wallet Connected

  • Chain selector automatically syncs with your connected wallet's network
  • When switching chains on wallet, you'll be redirected to view the same address on the newly selected chain

Network Support​

Enscribe supports multiple chains:

  • Ethereum Mainnet
  • Ethereum Sepolia
  • Linea Mainnet (with .linea.eth domains)
  • Linea Sepolia (with .linea-sepolia.eth domains)
  • Base Mainnet (with .base.eth domains)
  • Base Sepolia - Partial support (working with ENS node Namehash team for full integration)

This design handles the specific requirements of each chain, including ENS resolution differences and verification source availability. When you switch chains, the URL updates with the new chain ID, creating direct links to the same address across different networks.

Looking Forward​

This update makes Enscribe a more useful tool for everyone who works with smart contracts. It creates clarity around contract identity and verification status across multiple networks.

Our upcoming development priorities include:

  • Support for Base Sepolia
  • Integration with Ethereum Follow Protocol
  • Enhanced ENS management tools and details

Try It Today​

We're incredibly excited to share these new capabilities with our community. Checkout all these features today by visiting Enscribe App.

We build based on community feedback. Share your thoughts and suggestions in our Discord community or Telegram, or follow updates on Twitter/X.

Happy naming! πŸš€

Easily Find Your ENS Names for Naming Smart Contracts

Β· 2 min read
Nischal Sharma
Co-Founder and Lead Engineer at Enscribe

We've rolled out a great new feature in Enscribe β€” the ability to easily choose your owned or managed ENS domains when deploying or naming smart contracts. This makes it straightforward to find the right ENS parent name you want to name your contract with.

Thanks to the integration with ENS Subgraph , Enscribe can now fetch all ENS names that your connected wallet owns or manages and show them to you.

How It Works​

When a user connects their wallet, Enscribe queries the ENS subgraph and retrieves a complete list of ENS domains owned or managed by that wallet. These names are then:

  • Grouped by second-level domain (2LD)
  • Sorted alphabetically
  • Displayed in a modal

Demo​

Check out the below video to see it in action:

Demo Video

Here’s how it looks in Enscribe:

Dropdown view inside Deploy form:

Dropdown Field

Choosing ENS Parent (modal):

ENS Domain Picker

Deploy Contract Form with ENS selection:

Deploy Form

Why It Matters​

Before this update, users had to remember and manually type their ENS parent name β€” introducing user error.

This feature is currently supported on:

  • Ethereum Mainnet & Sepolia β€” via the official ENS subgraph
  • Linea Mainnet & Linea Sepolia β€” via ENS Linea subgraph
  • Base Mainnet β€” via ENS Node by namehash

Note: Support for Base Sepolia testnet is pending because no ENS subgraph exists yet. We're actively working with Namehash to add support β€” see GitHub issue #768.

Try It Out​

Visit enscribe.xyz and try the new ENS parent selection workflow in both the Deploy and Name Contract flows. Let us know what you think β€” your feedback helps us shape a smoother, safer, and more trusted smart contract experience.

We'd love to hear your feedback on this feature β€” join our Discord community or Telegram communities and let’s eliminate hex smart contract addresses for users.

Happy naming! πŸš€