ENS App v3: The next generation of ENS


We're excited to announce the official mainnet launch of the new ENS app version 3, a game-changing update that brings a complete overhaul with improved speed, design, and user experience. In this post, we'll dive into the new features and enhancements that make this version stand out. Experience it for yourself at app.ens.domains.

It's hard to overstate just how significant the improvements are in the new app compared to the previous version. We've meticulously revamped every aspect, rebuilding everything from the ground up to optimise and enhance both the user and developer experiences. This not only makes the app more enjoyable to use but also enables us to roll out new features more quickly for you to use!

The big changes

You can use it on your phone

From text fields to dialogs, everything has been designed with mobile in mind.
From text fields to dialogs, everything has been designed with mobile in mind.

In the age of smartphones, the previous version of the app struggled to meet the expectations of a modern site. Buttons were hard to press with a finger, navigation felt awkward on smaller screens, and compatibility with iOS devices was limited. At its launch, those trade-offs were reasonable given mobile wallets were still gaining traction, and web3 was mainly for the enthusiasts. But as times have changed, so has our app.

Recognising the growing importance of a mobile-friendly experience, we've prioritised mobile optimisation in the new version. We've designed it to look and feel like a native app, making every interaction smooth and enjoyable on your phone. Plus, it now works seamlessly with iOS devices, providing a consistent experience for all users!

Registration is all new

Web3 is becoming more popular with each passing day. With that popularity comes the requirement for dApps to maintain higher accessibility standards, allowing newcomers to easily understand and use apps in the wider web3 ecosystem. Given that, rethinking registration was a very significant part of the new app, because it’s one of the first entry points into web3.

Previously, registration was confusing to some users due to the nature of the two-step registration process and contract limitations. Users often didn’t understand what was happening, and once finished, they were left wondering “how do I actually use this thing?”

To help you better understand how gas prices affect the cost of registration, we've introduced a dynamic diagram that visualises the gas/value ratio. This diagram clearly illustrates the percentage of gas at 1 year and the number of years you can register for at approximately 40% and 20% gas, making it easier to grasp the relationship between gas prices and registration costs.

For those who haven't acquired any ETH yet, we've added the option to register names using a credit or debit card. Through MoonPay integration, you can go from credit card to ENS name in a single step. MoonPay registers your name onchain, just like you would with ETH, and sends it to your wallet.

We added clarification for the transaction steps, and changed the wording around the first step to be a “timer start”. We think that portraying the initial transaction as a simple timer helps to avoid any confusion that comes with trying to explain the underlying nature of the transaction.

Contract updates allowed us to add more customisability to each initial registration. Not only can you now set your primary name straight away, but you can also fill out the profile for the name! This extra customisability should allow you to maximise the potential usage of your name straight away, without needing any other transactions.

Using an avatar is easy

Gone is the advanced process of trying to follow a guide just to set your avatar! Now, when editing your profile, you have the convenience of choosing between two options instead of using a text field:

These avatars use the image of the NFT you choose, and can potentially be stored purely onchain. Selecting an NFT is easy and done in the app. Every time you set or change an NFT avatar, an onchain transaction is required (meaning it costs ETH).

Image Uploads (gas free avatars!)
These avatars use the free off-chain service provided by ENS Labs, and only the link to the avatar is stored onchain. When uploading an image, all you need to do is upload, crop and edit if you’d like, and then sign a message. Initially setting an image upload avatar requires an onchain transaction, but consequential changes don’t require one (so you can change it for free!)

Everything is faster

Since everything was rewritten, we could architect the app to focus on performance improvements. Data is loaded in fewer network requests, most duplicate requests have been removed, and data is now cached for instant responsiveness. Essentially, less loading, more doing.

Transactions are easy to understand

Transactions are now handled in the same way across the app, with a new format that shows a human-readable description about the action you’re going to take. It should now be significantly easier to understand what you’re actually sending once you go to your wallet. Once sent, you can also easily see the transaction’s status, as well as a link to Etherscan.

For actions that require multiple transactions, we introduced guided transaction flows.

The guided transaction flow for setting a primary name
The guided transaction flow for setting a primary name

Guided transaction flows bundle all the transactions required for an action together into a single, resumable flow. This makes it easier to identify the bigger picture for each transaction you send, and allows you to easily pickup right where you left off, so you don’t need to worry about closing the tab and losing your progress.

Finally, we also added a transaction history, so you can see what transactions you have done, their status, as well as a button to resume the transaction (for guided transaction flows).

Some other changes

We’ve added NameWrapper support

Part of what the NameWrapper can do is extend the ethos and features of the .eth namespace to any other name. Not only does this mean that any name can now be an NFT with its own NFT image, but it also enables the ability to create “unruggable” subnames with ease. If properly configured, no one will be able to take your wrapped subname away from you.

We’re excited to see how the ENS community uses and implements the NameWrapper in their own products and contracts!

Some terminology has changed

You might have picked up that we removed the “Controller” and “Registrant” naming scheme from the old app. It’s now been replaced with “Manager” and “Owner”. The NameWrapper made the previous naming scheme very confusing, and we think the new naming helps to better portray what each term allows for.

The ultimate owner of the name, no one can change this value but the owner.

Can make changes, but this value can be changed by others (you can get rugged if you are only a manager.)

We’ve also tweaked how various other messages are worded across the app to help newer users more easily understand what each thing means.

Everything follows a design system

We’re now using the Thorin design system, so everything you see across not only the app but also the entire ENS ecosystem should be more consistent and easier to use. The design system has a corresponding React package that we’d like to invite any ecosystem developers (and anyone else) to try out, available here.

A new JavaScript library under the hood

With the next generation of ENS, we needed to build a JavaScript library advanced enough to support all the capabilities of ENS, without sacrificing performance. To do that, we wrote ENSjs v3, which is the backbone of the app. It’s part of what allows everything to be so much faster than before by allowing functions to be batched together and by using the UniversalResolver. ENSjs v3 is not in a finalised state yet, but similar to Thorin, we’re inviting any ENS ecosystem developer to try it out, available here.

The future of the app

With this release, we are now one step closer to realising our vision for the future of ENS. The app is now a solid foundation that can be rapidly iterated on without having to worry about legacy systems. Alongside the code, the library of components we have built allows for consistently great user experiences across the board, while still having the flexibility for new innovations. Overall, this will enable us to achieve more consistent feature releases!

In the future we will add deeper L2 support, SIWE, and allow more customisability for each profile. This will help make it easier (and cheaper) to get started with ENS, and onboard the next billion ENS users.

This app represents our vision of ENS. We want each profile to act as a portable identity that you can use in whatever way you see fit, and we’ve put countless hours into making sure the experience of it is as good as can be. Everything has been rethought from the previous version, and we hope you enjoy using it!

Have feedback or questions? You can contact us on Discord or Twitter.

The app is available here: app.ens.domains.

Have a nice day :)

Subscribe to tate
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
This entry has been permanently stored onchain and signed by its creator.