New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

ENS Identity in Your Apps I Greg Skrill

ETHGlobalThu, Oct 9, 2025, 12:00 AM

Greg Skrill from ENS Labs presents on integrating ENS (Ethereum Name Service) identity into applications. ENS is a decentralized, permissionless naming protocol on Ethereum that converts complex hex addresses into human-readable names (e.g., gregskril.eth), improving user experience across web3 apps. ENS acts as a portable web3 profile, supporting metadata like avatars and bios via text records. He explains forward and reverse resolution, primary names, and recent support for L2s (Arbitrum, Base, OP Mainnet, Linea, Scroll), enabling cheaper, more flexible identity management. Subdomains and DNS integration allow for hierarchical and interoperable naming (e.g., greg.project.eth, gregskril.com). Greg highlights creative ENS use cases like Fluid Key, which enhances privacy by dynamically resolving names to different addresses. He encourages developers to replace hex addresses with ENS names, leverage metadata, and explore the ENS docs for tools and resources. Q&A covers latency, subdomains, metadata storage, Python support, identity proofs (e.g., zero-knowledge), and wallet integrations. 00:00 Introduction 00:34 What is ENS? 00:59 Human-Readable Names vs Hex Addresses 01:52 ENS as a Portable Web3 Profile 03:37 Improving User Experience with ENS 04:54 ENS as a Global Username System 05:35 Technical Overview: Forward & Reverse Resolution 06:55 ENS on L2s and Primary Names 08:00 Summary and Developer Guidance 08:23 ENS Tools, Subdomains, and Resources 09:16 ENS Hackathon Prizes and Use Cases 10:05 Creative ENS Applications: Fluid Key 10:56 Q&A: Fluid Key, DNS Integration 12:45 Q&A: Latency, Subdomains, Metadata 16:13 Q&A: Metadata, Arbitrary Data, Python Support 17:29 Q&A: Linking ENS to Emails/Phone Numbers 18:50 Q&A: Identity Proofs and Zero-Knowledge 19:53 Q&A: Smart Wallets and ENS Integration 21:42 Conclusion and Further Questions _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 🇺🇸 *ETHGlobal New York* This workshop is specifically for ETHGlobal New York, a 3-day hackathon held August 15-17, bringing together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! Watch the full ETHGlobal New York 2025 playlist here: https://www.youtube.com/playlist?list=PLXzKMXK2aHh4Xze0ZeSWCSGsw25clPpvZ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ *Follow Greg Skril* X: https://x.com/gregskril ✅ *Follow ENS* X: https://x.com/ensdomains ✅ *Follow ETHGlobal* X: https://x.com/ETHGlobal​ Warpcast: https://warpcast.com/ethglobal Website: https://ethglobal.com YouTube: https://www.youtube.com/c/ETHGlobal _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Are you interested in Ethereum development and entrepreneurship?_ 👉 Sign up for the next ETHGlobal event: https://ethglobal.com/events 🎁 Get exclusive access and perks with ETHGlobal Plus! https://ethglobal.com/plus 📣 Want us to throw an event in your city? Tell us where! https://ethglobal.com/city _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Transcript

[Music] Hey everyone. Um, the slides are not working today. So, I'm going to attempt to talk through everything, but this is different than what I usually do. So, might be a little difficult. So, bear with me and then I'll be around for questions after.

um which I assume there may be some. So, hey, I'm Greg from ENS Labs. I'm still going to look at my slides to make sure I'm touching on the things that I wanted to touch on, but uh feel free to raise your hand as we're going through because a little bit different than usual. Um so, the first thing I normally talk about is what is ENS? And ENS or the Ethereum name service is a decentralized permissionless naming protocol that lives on Ethereum and scales to the entire internet.

At a high level, kind of the oneliner is that we turn complex hex addresses into human readable names. And so complex hex addresses are what you might know if you've ever created a crypto wallet. You know, my address is ox179A88627 and it just keeps on going. I have to literally read the first five characters. But my ENS name is Gregscirl.

eth. And so, uh, for all intents and purposes, my Ethereum account is gregirl.eth. And that is kind of the way I represent my account instead of the long hex address. And this is all powered by ENS.

Uh we think of ourselves as a user experience protocol. You know, ENS exists to make Ethereum easier to use. Um and so when you're building your apps, the way you should think about it is that anywhere you have an address in your app, instead there is an opportunity to show an ENS name and that will improve the user experience. And so if you just think about this in a few different cases, one is like a peer-to-peer transa transaction. If I get coffee with somebody in this crowd and I want to pay you back $5 and I ask you for your Ethereum address so I can pay you a few USDC, you obviously won't say ox17988627 whatever.

Like nobody remembers their address. Um, and it's also not really normal or like efficient or expected to open your wallet app, find the address in the settings, copy it, send it to the person, they open their wallet app, they paste it, and so on. That's just not the way people are used to transacting. And so instead, I would say, how can I pay you back with USDC? And you just say Greg Scroll.

eth it is a human readable name or a human understandable name um that's just very easy to follow. And so it improves the user experience. And these things that uh I've said so far is really just like having a username for your Ethereum account, right? Which is how ENS started and still kind of a core functionality. Um but ENS is more than just a username.

It's really like a whole profile. So normally I would show uh kind of a screen of what an ENS profile can look like, but basically think about it like attaching any sort of metadata to a name. So my ENS name is Gregirl.eth, But I also have a bio attached to it that says I like baking and building apps on web3 protocols because I like both of those things. Or um I have an avatar image attached to my name.

And so whenever I go to different apps around the Ethereum ecosystem, those apps basically recognize me as Greg Strate. They show my profile. If it's a social app, they will see my bio and it's my portable web 3 profile. I'm going to keep repeating this to make sure you guys remember it, but ENS is a portable web3 profile. Um, normally when you connect a wallet to an app, you might see in the top right corner, we all can imagine that little pill that uh rounded rectangle that has like some randomly generated image called a blocky and like parts of your address to show the app or like the the state is showing that you're logged into the app.

But that is not really a good experience. Um, it's kind of just recognizing a human as like a machine address. And I kind of try and equate that to receiving like a marketing email where the intern forgot to actually fill in the blank. And I'm sure you guys have all gotten this. It's an email that's like, "Hey," and then square brackets with insert first name here or something.

And that's how Ethereum sometimes feels today or sometimes feels in apps that don't integrate ENS. And so ENS makes it easier to actually fill in the insert your name here part. and the avatar image makes it feel like the user is signing into an app where they actually have a profile and um it is their portable web3 profile. Normally I would show a few apps where this is the case but hopefully you can kind of understand in the abstract. Um and yeah the idea of all of this is that users of crypto-powered experiences should never have to interact with a hex address.

We think hex addresses are just kind of confusing and not a very good experience. It's like expecting Twitter users to know what their Twitter ID is or their Xac account ID. Like this is data that belongs in a database, not in a user interface. And so ENS is the kind of global portable username and profile of web 3. And when you're building your apps this weekend, the way I would think about it is anywhere you just see an address pop up in your app.

You might not even think like, oh, I'm going to have an app and there'll be addresses all over the place. But I promise you, if you're building something in crypto, there will be an address involved somewhere. And so anywhere you see an address, whether you're reading it or you're typing it into your app, that should instead either show or accept an ENS name. Um, cool. And I guess the more technical explanation of this is that ENS works in two processes.

There is forward resolution and reverse resolution. Forward resolution is the first case that I talked about. So you have a name and you turn that into an address. It's like Gregirl.eth to ox179A whatever the rest of my address is.

Um that's pretty easy to understand. It is the most basic use of ENS, excuse me. Um reverse resolution is the opposite. And so you have an address on a page and you want to turn that into a name. This requires the user to actually go and say like hey my primary name as we call it is Gregirl.

eth. And the reason the user has to do this specifically is because multiple names can resolve to the same address but an address can only reverse resolve to one name. And so the kind of pairing of a forward resolution meaning Gregirl.eth pointing to ox179A and so on. And then from ox179A I say hey my name is Gregirl.

eth. That kind of two-way relationship is a verification which becomes a user's primary name. Um, primary names have historically only been available on L1 to set. It would require an L1 transaction, an Ethereum mainet transaction for a user to kind of set this relationship. That is cool and great and still exists, but it is expensive because Ethereum mainet has higher gas fees than L2s.

And so as of just a few weeks ago, we are now having uh the contract responsible for that reverse mapping called a reverse registar is also available on a number of L2s including arbitrum base uh opainet linear and scroll. And so if you're building something on any of those apps or are open to building the identity identity stack of your app on one of those chains then it has the best support for the kind of full ENS feature set which is again forward resolution reverse resolution. Those two things come together to make a primary name and that is the portable identity that a user has and can carry with you across apps. Um I would normally show both of these kind of in effect and then I was going to go through some live coding which won't exactly work here today. So um that is the main stuff that I think is really that I'm able to walk through.

I guess to summarize before I open it up for questions. So maybe start thinking if you have any. Um the key thing to take away here is that anywhere your app shows a hex address, it should instead show a name. And if there's any opportunity to show extra metadata with that name, like an avatar image or a description or a social account that has been attached to the name, um, consider how that can improve the user experience of your app. There are a number of tools that I was going to show QR codes for, but in the meantime, I'll just sub that out for going to docs.

ns.domains. Um, that is where you can find all of the resources for ENS, including uh subdomains, which is the ability to have a user name like uh Greg under a project name like project.eth. So if you're building a project this weekend, say you have the ENS name project.

eth, you can give your users Greg.project.eth or like user.pro.eth and this becomes their username with the app that they can also take with them across the rest of the ecosystem.

Um, and so docs.nest.domains includes stuff about subdomains and primary names and forward resolution and reverse resolution and tells you exactly how to interact with the reverse registars that I talked about which is what powers the reverse resolution and all of that. Um, the two prizes that we have this weekend or the two tracks is one best use of L2 primary names specifically because that is our new feature. And so again, this is the ability to show to go from an address to a name in your app and basically get rid of addresses in your app overall, whether it's a social app or a leaderboard or simply the connect wallet um state in the top right corner.

Anything that shows a name instead of an address um on an L2 would be applicable for that track. And then the other is just generic best use of ENS. And so this very well may use LT primary names or this might be just a nice site to register regular ethnames instead of subdomains or this could be um a social app that uses ENS or it could be a tool to manage your existing ENS names or it could be a marketplace to manage your existing ENS names. Basically any cool thing that you can think of that uses ENS applies for this track. Um one cool thing that I will give a shout out to that has been built in the past is a project called Fluid Key.

um they had a really unique take on ENS and they basically thought that having the ability to type a name instead of an address into wallet apps is really cool and beneficial, but the fact that the name resolves to the same address every time um was suboptimal for privacy in some scenarios. And so their solution was to build a name that dynamically resolves to a different address every single time you resolve it. And so they can accept payments to unique addresses, but behind the scenes that user can actually access all of the funds that is sent to all of those different addresses. And so it's a fairly abstract idea, but hopefully um that gets you thinking in kind of creative ways. So those are the two prizes.

Um again, would normally show QR codes here, but for now that is I think all I can talk through. Um based on all of that, are there any questions that I can answer for you guys today? Yeah, let's start on the right. Totally. Yeah.

So, Fluid Key is a project that is built on top of ENS. They have subdomains under I think it's fid. Um, also something that I'll go on a little tangent here before finishing that answer is that um many people often think ENS is just names, but also um you can use DNS names in the ENS ecosystem. And so if you have, you know, gregscrill.com resolves to an address and if you type gregscril.

com into MetaMask, then that will resolve to an ETH address. And this is like the core philosophy that Ethereum or specifically ENS respects existing in infrastructure. I think too many people um believe that we have to burn down what already exists and build something totally new. And I think it's more practical to build on top of the internet as it is today. And so ENS kind of leans into this and supports um the DNS system as well.

So anyways, fluid key has uh a subname of Fkey. ID like I think I have Gregil.fid and anytime you try and send funds to that is a new address. Um, I don't know like they're they're more focused on the user experience than than the developer experience, but I think they probably have some open source pieces that you can build on top of or I'm happy to walk you through which steps they took to kind of arrive at their product and we can pick apart pieces if you want afterwards. Um, yeah, go ahead.

Does the resolution process additional latency?

Does the resolution process add additional latency? um additional compared to what I guess like so normally if you were showing just an address in the app um it will be an extra RPC request in order to you know see if there is a uh corresponding name um so I guess the answer is yes there's one request instead of zero um but typically we don't find that to be a big blocker in an application Yes, ENS is available on mainet and test net and so you don't have to spend any real money to get things working.

Of course. Yeah,

two questions. What I'm thinking about is multiple levels of subdomains and also horizontally.

Cool.

Can you like the same?

Yeah, absolutely. So just to repeat the question for the recording, it was um can you use subdomains and kind of all the same tools with um in the DNS world? And the answer is yes. Um gas

no. So there is uh no gas cost in order to set up a subdomain of a DNS name. And I guess there are different ways to do it. In some ways there may be, in some ways there doesn't have to be. And so it kind of depends on what type of application you're building.

Um, and I can explain all all the different scenarios, but at a high level, any functionality that is available with a name is also available with a DNS name. Um, and so you can have subdomains, you can have multiple domains, you can have uh infinite levels of subdomains. And so it's like sub.sub.name.

ether.com. All of these things work with both. dynamic subdomains.

Uh, can you dynamically link DNS with I guess

it's probably hard to assume that the same person always owns the same.com and um, so are you talking about subdomains of each?

Yeah, if you control both you can definitely map them together. So this is actually what fluid key does as well. Um, in your browser, if you go to gregskril.f.id, then that brings you to a web page that shows um, kind of different information about my name.

Um, but also if you just type that into MetaMask, it will resolve to the same address that you would expect on the web page. And so it kind of works in both ecosystems at the same time, which is actually a really cool side effect of using DNS in ENS.

Um, yep. You mentioned metadata associated with DNS record.

Yes.

If I'm building an apps, can I store stuff to my application through the mapping and be able to pull that?

Absolutely. So the question was about um metadata on an ENS name. And so we have this thing called text records. Text records are the ability to store any key value pair, a string to a string um alongside a name. And so there are standard text records like avatar for an avatar image like a profile picture or description for a bio and so on.

But you can do any arbitrary key and any arbitrary value. So if that's like preferences for your app or um like certain proofs that show a subdomain is registered under like a uh I don't know some sort of like zk proof that you can store in a text record. It's really the world is your oyster and so definitely arbitrary data in ENS is a is a cool use case that we support. Um yeah, do you have a Python version of that?

Um we do not have Python examples of probably many things. I think yeah we are definitely Typescript oriented. Um, so unfortunately not, I don't think, but I I can I can walk you through the the pieces if you're trying to build your own. I'm not the best at Python, but hopefully I can guide you through it. Um, yeah.

On top of what's already there, was there any attempt to like attach wallet addresses to email or phone numbers?

Um,

yeah. Uh so the question is was there an effort to attach wallet addresses to uh things that more people have in the world like emails or or phone numbers and the answer I think is no. It's basically like uh the the core of the account the core of an Ethereum account is an address. You know at the technical layer we're not trying to replace an address like an address is the unique identifier as far as Ethereum is concerned and ENS is just like a human readable mapping on top of it. Um, I I would argue that even phone numbers, like people don't remember, they save them as contacts in your phone.

And so each person has a different name for a phone number in their contact book. And so ENS is like a global contact book for Ethereum. Um, so I think it's almost at a little bit of a different layer. And I think Ethereum accounts are just like um yeah like ENS maybe is an email type alias to an Ethereum account as a full name is in a contact book to an email address maybe I don't know if that's the best comparison but um yeah.

Yep.

Is there any opportunity for likeity?

Yeah absolutely. So the question was is there opportunity for zero knowledge proof of identity um with an ENS name and I think this is something really cool that hasn't been totally explored yet. It's the idea of maybe you establish a text record that is like the key is human or something and that becomes a standard and the value of that is like a worldcoin proof or a self-protocol proof which are two kind of identity things in the space. Um, and so applications can check if a user has a primary name and then if they have a primary name, they can check if they have that text record and based on the value of that, if they can prove that the user is a real human, they can unlock certain parts of the app. Or um, if you're building subdomains, then you can make it possible so only somebody that that supplies a proof of personhood can actually create the subdomain.

And so therefore, you know, every name uh every subdomain under a given name is a real human. Um and so kind of two different approaches depending on the app you're building, but both possible. Um I think we maybe have time for one more question. Yes.

Hey man, great pres. Is there is there any smart wallet technology that uses ENS to like create automatic automated uh subdomains based on user input into like sign up form or like create a Ethereum address and subdomain at the same time. So the user is like completely abstracted from the development of

Yeah.

Oh yeah. Yeah, they're not advertised for your product.

Oh, there you go. Yeah. So, um the question was, is there any like smart wallet stuff built into ENS? And the answer is no, not built into it. But, um many wallets do integrate ENS pretty natively.

For example, Gemini yesterday launched a smart wallet. Um this wasn't planned. That just happened to be good timing. And so, pretty natively into their experience, when you're creating a new wallet, they ask the user for a username. And that username is an ENS name that can kind of carry uh that the user can carry around with them throughout web 3.

And so when they sign into different applications with their Gemini smart wallet, an application can recognize that this person is Greg.eth for example. So um the answer is no. ENS doesn't have any native wallet features built in, but we work quite well with a bunch of different wallet stacks. And so if you're using um I think dynamic is here for wallets for example, you can build a pretty cool experience that combines the two.

Um but cool. Thank you guys for bearing with me without the slides. Hopefully this was informative and we have a booth downstairs if you have any questions. [Music]

Automatic transcript — names and jargon may be misspelled.