Skip to main content
Nischal Sharma
Enscribe Lead Engineer
View all authors

Enscribe now supports ENS L2 Primary Names

· 7 min read
Nischal Sharma
Enscribe Lead Engineer

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.eth0x123... 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
Enscribe Lead Engineer

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
Enscribe Lead Engineer

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
Enscribe Lead Engineer

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! 🚀

Integration of Contracts Verification in Enscribe

· 3 min read
Nischal Sharma
Enscribe Lead Engineer

We’re excited to share a new enhancement in Enscribe's “My Contracts” page that gives users more visibility and confidence around their verification of deployed smart contracts with Contract Verification Badges.

Smart contract verification is essential for transparency. It lets users and developers inspect the exact source code that’s running on-chain. Until now, finding all your deployed contracts and checking whether they were verified required manually opening Etherscan or other block explorers, copying contract addresses, and digging through multiple tabs.

With this update, Enscribe now shows verification badges next to every contract you’ve deployed — across both the Named Contracts and Unnamed Contracts tabs on the "My Contracts" page.

What You’ll See

For each deployed contract, Enscribe checks whether your contract is verified on the major platforms:

If verified, you’ll see a green-bordered badge labeled "Verified" for that platform. Clicking on this badge will take you directly to the verified record on the respective platform, where you (and your users) can inspect the source code, compiler details, and verification status like “Exact Match” or “Partial Match.”

If the contract isn’t verified yet, you’ll see a “Verify” label instead — which links to the verification page for that platform. This way, users can quickly take action without needing to search for the address manually.

Here’s a quick visual reference:

Verification badges in Named Contracts
Verification badges in Unnamed Contracts

The Trust Layer: ENS + Verification

We’ve also introduced a green shield check icon next to any contract that has:

  • A Primary ENS name
  • And Verified source code on at least one supported platform

This badge signals that the contract is both named and transparent — giving dApps, wallets, and end users a stronger trust signal.

Why This Matters

Verification builds credibility. Naming adds discoverability. When paired together, they create a safer and more intuitive experience for Web3 users.

With the latest update, Enscribe now helps you:

  • Easily confirm if your contracts are verified
  • View verified source code with one click
  • Quickly navigate to the platform if you still need to verify

It’s all about making security and trust more accessible — without disrupting your workflow.

Try It Out

Visit the updated My Contracts page and explore the verification status of your deployed contracts. If any of them are missing verification, take a moment to complete it — and get one step closer to making your contracts trusted and verifiable.

As always, we’d love your feedback on this feature. We’re just getting started with trust layers in Enscribe, and your input helps shape what comes next.

For more details, visit our site, and don't hesitate to join our Discord community and Telegram group to share your feedback and experiences.

Happy Naming! 🚀

How To Easily Name Your Existing Smart Contracts

· 4 min read
Nischal Sharma
Enscribe Lead Engineer

We’re excited to announce a new update to the “My Contracts” page on Enscribe. If you’ve ever deployed smart contracts and wished for a clearer, more structured way to manage and track them — especially across ENS names — this update is built just for you.

In this release, we’ve reimagined how developers interact with their deployed contracts by dividing the view into two clear categories:

  1. Named Contracts - Contracts deployed by the user which have an ENS Primary Name
  2. Unnamed Contracts - Contracts deployed by the user which doesn't have ENS Primary name

This makes it easy to monitor which of your contracts have verifiable identities through ENS, and which ones are still waiting to be named.

A Smarter Way to See Your Deployed Contracts

Historically, developers had to use blockchain explorers such as Etherscan, or keep their own records as which contracts they've deployed. With Enscribe we're changing that.

The “My Contracts” page automatically surfaces all contracts directly deployed by your connected wallet. This includes both contracts deployed through standard Ethereum transactions (where the transaction "to" is null) and contracts deployed using CREATE2 via Enscribe.

One thing to note: we currently do not track indirect deployments — such as contracts created through another factory contract (internal contract creation calls). This is a planned improvement and is on our roadmap for upcoming releases.

Named vs Unnamed

The page is now split into two tabs:

Named Contracts

In the Named Contracts tab, you’ll find all contracts that have been deployed by your wallet and already have a Primary ENS Name. Each contract entry displays its ENS name, contract address, the transaction hash for creation, and direct links to tools like Etherscan, Chainlens, and the ENS App. This makes it easy to verify and share your named contracts.

We support Ethereum, Base and Linea mainnets and testnets.

Named Contracts Tab

Unnamed Contracts

The Unnamed Contracts tab, helps you track contracts you’ve deployed that haven’t yet been named with ENS. Each entry includes the contract address and creation transaction hash, along with a contextual action button. Depending on the contract’s structure, this button will either prompt you to “Name Contract” (if it supports Primary Name assignment through Ownable/ERC-173/ReverseClaimer) or “Forward Resolve” (if only forward resolution is possible).

We’ve also added smart visual cues to guide you:

  • A "yellow exclamation" icon indicates contracts that support only ENS forward resolution.
  • A "green info" icon marks contracts that are eligible for full ENS primary name assignment.

Clicking on the action button takes you directly to the naming interface with the contract address pre-filled — allowing you to easily upgrade your unnamed contracts into trusted, named entities.

Unnamed Contracts Tab

Fully On-Chain, Fully Trustless

One of the most powerful aspects of our DApp is that it’s completely trustless. Enscribe doesn’t use a centralized database. All contract discovery, naming info, and status checks are done on-chain, directly from your connected wallet via RPC calls. This means no vendor lock-in, no stale cache, no single point of failure — just accurate, permissionless data every time you load the page.

Because we query the chain live, loading the full list of contracts happens asynchronously and can take a bit of time. While your contracts are being processed, you’ll see a spinner at the bottom of the table. Once loading is complete, the spinner disappears, indicating the tables are now fully up to date. This will be optimised soon.

Loading Contracts

See It in Action

We’ve recorded a short walkthrough showing how the updated “My Contracts” page works and how you can use it to name your existing or new contracts instantly.

Watch the demo here.

The Takeaway

This update turns Enscribe into more than just a naming tool — it’s now your command center for managing smart contract identity across Ethereum and Layer 2s. Whether you’re shipping production contracts or deploying testnet experiments, the new “My Contracts” page gives you a structured, intuitive way to understand what you’ve deployed and what still needs to be named.

Naming your contracts helps users trust them. It makes them recognizable in wallets, block explorers, and dApps. And now, managing that naming process is easier than ever.

For more details, visit our site, and don't hesitate to join our Discord community and Telegram group to share your feedback and experiences.

Happy Naming! 🚀

Enscribe Now Live on Ethereum, Linea, and Base Mainnets

· 2 min read
Nischal Sharma
Enscribe Lead Engineer

We’re thrilled to announce that Enscribe is now officially live on mainnet — across Ethereum, Linea, and Base networks.

Enscribe is a smart contract deployment and naming service purpose-built to bring human-readable identity to on-chain contracts. It allows developers to deploy contracts and assign ENS names — including subname creation, forward resolution, and reverse resolution (primary name) — all in a single, atomic transaction.

Until now, naming smart contracts using ENS was a fragmented and manual process that required interacting with multiple ENS contracts post-deployment. Enscribe abstracts that complexity entirely.

And yes — we’ve used Enscribe itself to name our production deployments.

Mainnet Deployments and ENS Names

Ethereum Mainnet

Linea Mainnet

Base Mainnet

We Enscribed Ourselves — Watch It in Action

We used Enscribe to name our own mainnet deployments — and captured the entire flow.

Ethereum Mainnet

Linea Mainnet

Base Mainnet

Name Your Contracts — Today

This is a major step toward bringing trust and transparency to on-chain contracts through meaningful naming and identity. We’re excited to see what you build with it. Enscribe your contracts. Make them recognizable.

For more details, visit our site, and don't hesitate to join our Discord community to share your feedback and experiences.

Happy deploying! 🚀

The New Enscribe Docs Are Live

· 3 min read
Nischal Sharma
Enscribe Lead Engineer

We’re excited to announce a major refresh to the Enscribe Documentation — built to help developers and users better understand how ENS naming works for smart contracts and how Enscribe makes that process seamless.

Whether you’re deploying new contracts or assigning ENS names to existing ones, the updated docs walk you through every part of the experience with clear explanations, examples, and new video walkthroughs.

What's New?

The updated Enscribe docs are now structured to cover both technical depth and usability, giving you exactly what you need depending on your goal.

The Enscribe docs are now divided into three major sections:

Introduction

Introduction

Get oriented. Learn what Enscribe is, why it exists, and how it bridges the gap between ENS and smart contract UX.

  • What is Enscribe? - A high-level overview of the problem we’re solving.
  • Overview of ENS - Understand how the ENS protocol works: Registry, Resolvers, Reverse Resolution, and more.
  • Naming Smart Contracts - Why naming smart contracts is hard, and how Enscribe makes it simple.
  • Supported Networks - Live Enscribe contract addresses across L1 and L2 chains like Sepolia, Base, and Linea.

Getting Started

Getting Started

Everything you need to know to go from “I have a contract” to “My contract has a beautiful ENS name.”

  • Contract Deployment Service - Learn how to deploy a contract with ENS naming in a single transaction.
  • Naming Existing Contracts - Assign names and reverse resolution to contracts that already exist on-chain.
  • Deployment History - Track previous deployments and view assigned names.
  • Bytecode and ABIs - Understand how contract bytecode and constructor arguments are handled in Enscribe.
  • The Operator Role in ENS, Why and How? - Get clarity on why operator permission is needed and how it’s securely managed by Enscribe.

This section is packed with video walkthroughs, UI screenshots, and interactive examples to help you get hands-on quickly.

Advanced (Coming Soon)

For those looking to dive deeper into ENS internals, smart contract design, and Layer 2 nuances — the Advanced section will soon include:

  • ENS Terminology - A glossary of ENS-specific concepts for developers and power users.
  • ENS on L1 vs L2 chains - A detailed breakdown of how ENS behaves differently across Ethereum mainnet, Base, Linea, and other L2s.
  • Design and Architecture - A full overview of the Enscribe contract system, including sequence diagrams, CREATE2 deployment flow, and ENS contract interactions.

Learn More & Dive In

You can explore the updated docs and start deploying contracts with names you can actually remember.

For more details, visit our site, and don't hesitate to join our Discord community to share your feedback and experiences.

Happy deploying! 🚀

Easily encode Solidity constructor arguments with Enscribe

· 3 min read
Nischal Sharma
Enscribe Lead Engineer

Deploying smart contracts with constructor arguments just got a whole lot easier with Enscribe.

Previously, if your contract required constructor arguments, Enscribe expected you to manually encode those arguments, append them to your compiled bytecode using external tools like Remix or Hardhat, and then paste that full bytecode into the UI. This approach was complex, error-prone, and completely unintuitive — especially for contracts with more than a simple string or uint.

We're excited to announce that Enscribe now supports native constructor arguments input in the UI. Now no manual bytecode editing is required.

Enscribe Form

What's New?

With the latest update, users can now provide constructor arguments directly within the Enscribe UI.

There are two ways to do this. You can manually enter the argument types and values using a set of dropdowns and input fields, giving you full control over the structure and content. Alternatively, you can provide your contract's ABI. When you do, Enscribe automatically detects the number of constructor arguments, their names, and their types, and then generates the appropriate input fields for you to input the parameter values.

This streamlined experience allows you to focus on your contract logic, while Enscribe handles all the underlying ABI encoding and bytecode composition for deployment.

Manual Mode: Add Any Type, In Any Order

You can add any number and type of arguments manually. Enscribe provides a dropdown list for all common Solidity types: string, uint8, uint256, address, bool, bytes, bytes32, string[], and uint256[]. Just add the argument, choose its type, and input its value.

For more advanced use cases, select Custom Type from the dropdown. This is where Enscribe really shines — giving you full control for struct-based inputs, tuples, arrays, and combinations of them.

Example: Arrays of Structs (Using Custom Type)

Let's say your constructor looks like this:

struct Person {
string name;
uint256 age;
address wallet;
}

constructor(Person[] memory people)

Here's how you'd fill it out in Enscribe:

  • Custom Type: tuple(string,uint256,address)[]
  • Value: [["Nick", 30, "0x1bA43Becc3Ea96c37343b7CB18de7386bA29445B"], ["Jane", 25, "0x7cF7816d45398A1b37bBE517ca24d8CdFb8D042D"]]

Enscribe Form without ABI

Enscribe will automatically ABI-encode this value and append it to the deployment bytecode.

ABI Mode: Let Enscribe Do the Work

If you paste or upload your contract's ABI, Enscribe will:

  • Detect the constructor function
  • Extract the parameter types and names
  • Generate the input form fields automatically, where you just need to input parameter values

This is the recommended path for most users, as it:

  • Reduces manual effort
  • Prevents input format mistakes
  • Makes the argument fields easier to understand

If your contract constructor is: constructor(string memory greet, uint256 initialCount)

Then Enscribe will automatically show two input fields: greet(string) and initialCount (uint256), and you just need to input parameter values.

Enscribe Form with ABI

Under the Hood: ABI Encoding and Bytecode Generation

When you click Deploy, Enscribe automatically takes care of everything behind the scenes. It ABI-encodes your constructor arguments, appends them to the compiled contract bytecode, and sends the final result to the blockchain as a single atomic transaction. You don't need to worry about encoding formats, data padding, or bytecode structure — Enscribe ensures that everything is correctly formatted and deployment-ready.

Learn More & Get Involved

Ready to deploy your contract with constructor arguments and assign it a primary ENS name? Try it now in the Enscribe UI and experience seamless contract deployment with human-readable identity.

For more details, visit our documentation, and don't hesitate to join our Discord community to share your feedback and experiences.

Happy deploying! 🚀