ENS - Identity in Your Apps I Greg Skril
ETHGlobal·Tue, Dec 9, 2025, 12:00 AM
Join Greg Skril for a workshop titled "ENS - Identity in Your Apps", featured at ETHGlobal Buenos Aires 2025! _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 🇦🇷 *ETHGlobal Buenos Aires* This workshop is specifically for ETHGlobal Buenos Aires, a 3-day hackathon held November 21-23 at the Centro de Convenciones Buenos Aires, 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 Delhi 2025 playlist here: https://www.youtube.com/playlist?list=PLXzKMXK2aHh76O7FfAHPJkZcqTIfYpoyf _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ *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
So, hey everyone. I am Greg Derell at ENS Labs and today we're going to be talking about ENS as a source of identity in your app. Let me make sure this is all good. Great. Okay.
So, first let's start with what is ENS? ENS or the Ethereum name service is a decentralized permissionless naming protocol that lives on Ethereum and scales to the entire internet. At the most basic level, we turn complex addresses into human readable names. So instead of typing ox1798 all these random numbers and letters into your wallet, you just type gregirl.eth.
Very simple. And this makes ENS a user experience protocol. You know, we exist to make crypto apps, Ethereum and beyond, just easier to use. You can think of it as two separate things, kind of like a before and after ENF. Um, one is I get coffee with my friend and I have to copy and paste my address and it's like, send me money to again this really long string that nobody's going to remember.
Or I say, send me $5 to Greg Lead. Very reasonable. Um, web two users are used to usernames. This is all just very familiar. And you're seeing that ENS is kind of becoming your portable identity across crypto.
And the things I've said so far, just going from a username to an address. Sounds kind of like a username. Yeah. But over time, ENS has become also more of a profile rather than just a username. So the contrast is a little hard to see this, but um this is a look at my ENS profile.
You'll notice that I have a name and an address. Yes. But I also have addresses on other chains, some EVM, some not. So like there's a Bitcoin address and a Salana address here attached to my ENS name. Um I also have an avatar image in the top left and as description saying that I like baking and building apps on web3 protocols.
And this is kind of again my portable web 3 identity. As I go through different apps in the Ethereum ecosystem or really in the crypto ecosystem, um they can read all of this data and it's like they know me before I even start using their app. Um, you might have seen this before as a crypto user. You press connect wallet on a website and then you get something that looks like this. A gray box and then again this just string of random numbers and letters.
And this isn't a very personable experience, right? Uh, the app doesn't know who you are and you sign in and see this. It doesn't really feel like a sense of belonging. It's almost like when you get a marketing email and the intern forgets to fill in the blank. It's like, hey, this customer that we definitely know and and care about, um, and it just doesn't feel good.
And so, what an app that implements ENS could look like is more like this. You connect your wallet, it identifies your profile, it shows you your avatar image, your username, uh, and this is the first time you visit the app. It's like a sense of belonging because ENS is your web 3 portable identity. Uh, these are just a few examples of apps that do this. When you sign into Snapshot, you'll see your ENS profile.
When you sign into MACHA, you will see your ENS profile. And these are good examples of apps that integrate ENS as a source of identity. This is a view of two ways to use ENS. On the left side, it's reading historical transactions from Etherscan. Right?
You see that gregirl.com is sending something out to zk.ns.gregscroll.eth.
This is a smart contract that I've named underneath gregscroll.eth because ENS also supports subdomains and it's just very easy to see exactly what's happening. Greg is sending something out to this other name or real Cameron is sending something in to Greg. It there's a lot of context in this. I can read it and understand.
Whereas the bottom two transactions are completely random. You know, if you're looking at a list of wallet addresses, they don't mean anything. You don't know which one is which, which is a contract, and so on. So, uh, the top two are examples again of a good ENS implementation. The bottom two are what it might look like without ENS.
And I think it's easy to say that the top two are more friendly and usable than the bottom two. On the right side, you get the opposite. So, when I go to send assets to somebody, instead of just copying and pasting an address, or even worse, trying to type an address out, I can just type an ENS name. So, this is me in MetaMask typing in Greg.eth that resolves the underlying address and I can send assets to it without having to worry about these addresses at all.
Again, a much better experience than the alternative. And the pattern here is really uh or the core belief is that users of crypto-powered experiences should never have to interact with hex addresses. You know, it's like if you use Twitter today, you don't know what your account ID is. You know what your username is. Uh you know your profile image and your profile description.
This is what ENS brings to crypto except it makes it portable instead of having a different username on each individual platform. And another way of saying this is that anywhere you read or write a hex address, you should be able to use an ENS name. And so as you're building stuff this weekend, I think really just keep this in mind. You'll be building an app where you'll have some address in the the interface. And whenever you see that, just think, how could I assign an ENS name to this address instead?
Because that will ultimately improve the user experience of your app a lot. Cool. So now we have an understanding of what is ENS, how an app might integrate it in the right way, and kind of what it looks like with and without ENS. And so now let's go a little bit into how it works. So under the hood, there are two processes here.
There is forward resolution and reverse resolution. Forward resolution is the idea of going from a name to an address. And this is just that simple username mapping that I started with. Right? The distinction is that nic can resolve to a different address on a different chain.
And so my address on Ethereum mainet might be different than my address on base mainet because it could be a smart contract or something like that. This also is what supports Bitcoin and Salana and all the other nonem chains that I described earlier. Reverse resolution is well the opposite. It maps an address to a name and this is what powers the sort of portable profile again that I was describing before. So when I sign into snapshot I snapshot checks the reverse record for my address that would be Nick.
And then you to verify that you check the forward address of Nick. And as long as the result of the forward lookup and the reverse lookup match together, then you have what we call a primary name. And the primary name is really what this source of identity is. You can have a primary name on a number of chains, L1 and L2s. And again the end result is that before you have a gray box and random numbers and letters whereas with ENS I don't know why this thing is blurry but um the result is with ENS you have the user's avatar image and their username and all this context about them uh so they can feel kind of at home in your app immediately.
The way you configure that reverse resolution or really configure a user's primary name is using reverse registars which are available again on all of these chains. And the reverse registar is a very simple smart contract that looks something like this. And I know it is kind of hard to read with all the comments in here. So let's actually try and do a little bit of a live example. So this is a page in our docs that goes over the different reverse registars and again reverse registar mapping of address to name.
Right now I have this example front end that shows I do have a primary name on Ethereum mainet. I do not have a primary name on base the L2. And so let's set that up. This is the address uh can you see it? Okay.
This is the address of the reverse registar on base which I got here from the docs. And I'm going to connect my wallet. Okay. And I'm going to call the set name function that you just saw in the slides before. And I'm going to set it to Gregirl.
eth. Before I do that, I want to show you that this is my profile for Gregirl.eth on the ensager app.domains. And importantly you will see that the base address for this name is set to ox179 so on right and so on etherscan importantly I am connected as ox179a the same address and I'm going to call set name to gregill this is setting up that two-way verification that I mentioned before that should go through in a second because base is very quick.
And now magically you can see that my primary name on base is also gregirl.eth And so other apps would be able to use this same code, you know, which is easily available over here and I'll link to at the end um to fetch the primary name of Greg's of my address on base and it will return Greg whereby you can get the rest of my profile as well. And so that is kind of reverse resolution and primary names together. Another and I'll have time for questions at the end. Another feature that I often skip over but actually want to focus on this time is decentralized websites.
And so a lot of you may have noticed the other day um in the morning when Cloudflare went down and had a global outage and basically half of the internet stopped working. This is very much not a good thing and I think in the um Ethereum ecosystem something that we want to fight against and so I want to highlight how ENS can be used to kind of fight against this. ENS has this concept of a content hash. If I go back to my ENS profile here, you will see that if I edit my profile, which is stored on Ethereum mainet in this case, just for simplicity, I have an option to add a content. Oops.
Okay. I have an option to add an IPFS record to my ENS name. What this is doing is pointing to a content identifier on IPFS, which is a decentralized storage network. And then there are plenty of services that act as a sort of relay. And so it bas it makes it easier to access your decentralized content through your ENS name.
And so I'm going to hop over here to Piñata, which is an easy way to upload files to IPFS. And I have prepared this very basic folder, this very basic website with an index.html file. And I'm going to upload that over here. And that should go quickly because it's a single file.
Great. And if I copy this CD, I can go to different um let's see, IPFS gateways. I'm going to find one live. It's kind of hard to use my computer this way, so thanks for bearing with me. Um, okay.
So, I'm going to try going to this dweb.link. This is an IPFS gateway unrelated to ENS. And I just want to demo how this works before I show how it connects to ENS. And I just pasted in the CID that I got from Piñata over here.
And if I enter this, then you'll see my website is uh returned from this gateway that I didn't upload the content to is actually unrelated at all. And so now that we know it works, I'm going to set the content hash of my ENS name to this IPFS value. Here we go. And this will make my website available via a number of decentralized gateways. So let's wait until it goes through.
This is on main Ethereum, so it goes a little bit slower. Let's see. Probably should have said a custom gas price. Um,
did it set?
Nope. Okay, maybe we'll come back to this in a minute once this finishes. Yes, we'll come back to this. But the end result is that um I can set a I can attach a decentralized piece of storage and a decentralized website to my ENS name and combine those two to access it in a decentralized way which works even if Cloudflare goes down. Um and that's I think a really important feature of ENS that we often uh look over but especially given the outage this week I wanted to highlight it.
Okay, that actually did work. So now if I go to gregscirl.eth.limmo e.limmo Limo is one of these gateways that I'm explaining.
Yeah, it served my decentralized website very easily without having to worry about the hash at all. So, a user would be able to go here and see the decentralized content that I've attached to my name. And this was working, for example, when Cloudflare went down the other day. So, my website gregirl.com would not work, but gregirl.
e.limmo would. Another version of this is eth.link. Again, it's a decentralized stack, so anybody can run it.
Another one is e.cd and the list goes on and on. Um, anybody can operate these and it's just a really great way to have website content available even if Cloudflare or something goes down. Yeah. Oh, that one isn't working.
But anyways, you get the idea. ENS for decentralized websites is a really interesting use case that I would love to see more people build on this weekend. Cool. And so things you can build that now that I've highlighted a few different features. If you're building an AI, consider using usernames and text records, which is a way to store arbitrary data alongside your ENS name.
If you're building some sort of wallet, then again, assign each user a username if they don't already have one. And make sure to set their avatar so that when they go to other apps, they can be recognized with their portable web 3 profile. I'm going to keep saying that to kind of get it in your mind. If you're building a social app, obviously social users need a username. If they don't already have a primary name when they arrive to your app, you can issue them a name, create one for them using a framework that I'm going to show you in a second.
Um, you can set their avatar and you can set their primary name. And lastly, content. If you're building something that you want to be meaningfully decentralized, then setting the content hash or using ENS for its decentralized website ability is a really interesting use case that again I don't think we see used often enough. And so high level whenever you are building something that's weekend just think anywhere your app shows hex address it should instead show ENS names. This is transferring assets or if you see a list of addresses in your app anywhere an address shows up there is probably a good way to replace that with ENS names and that will result in a better user experience for your apps.
Duran is the tool that I mentioned for creating subdomains easily on layer 2. So if I have gregscroll.eth as a social media platform and I want my users to create you know their username.gregscroll.e.
Duran provides me the tools to easily do that. Primary names are the concept that I talked about in the beginning. What makes ENS your portable web3 profile? And this is a QR code that links to the page in our docs about it. It looks like somebody is scanning.
So I will wait a second. Cool. Um, and yeah, with all of these things and more, our prizes this weekend are pretty generic. Most creative use of ENS and a few different tiers of that. We try and cast an open net and have everybody build on ENS.
Um, so this could look like many different things, but decentralized websites, um, profiles in your apps, kind of all of these things are eligible to win this prize. And yeah, if you have any questions throughout the weekend, hopefully the little glitch doesn't break this QR code, but I will be here all weekend and happy to help by our booth um close to the main stage or via Telegram online. So, thank you for listening. Looks like we have three minutes for questions if anybody has.
Yes.
Yes. So, there are a few different numbers that you can track in terms of users. The total number of ENS names out there is in the I want to I want to say it's like over 10 million including domains, subdomains. There are different types of subdomains which we can also talk about. Uh the number of users with a primary name on Ethereum mainet which I think is actually a pretty good um reference of like high quality unique users up until recently where we launched EL primary names was I think around eight or 900,000.
Um the number of unique ethnames, so something that somebody purchases on mainet Ethereum is also somewhere a little over a million. Um so ENS has been around for about eight years now and and that's kind of where we're at. And most importantly, I'll say there are hundreds of integrations out there and so when a user arrives at an app and they have an ENS name, they'll kind of see their address represented by that name. And I think that's the impactful part of ENS. Um maybe time for one or two more questions if anybody has.
Yep.
Yeah, the question was about ENSV2. Um, we don't have an exact timeline, but we did share an update, I think on Monday of this week, that we're working with Nethermind to build namechain, which is an L2 to host ETH names and related ENS infrastructure, um, on Surge, their stack, which is built on top of Tao. So, namechain will be a ZK EVM um, a base rollup. it will be as decentralized as possible on day one and uh becoming more so over time. We are very committed to that.
Um and so yeah, that's kind of the the update. But cool. Thank you guys for listening. Come by the booth if you have any questions and I'll talk to you soon.
Automatic transcript — names and jargon may be misspelled.