======================================================================== ENSv2: Identity for Apps, Agents & Beyond Speaker: Kevin Werkemann — ENS Labs ETHGlobal Tokyo 2026 · Workshop · Friday, September 25, 2026 Video: https://www.youtube.com/watch?v=CtCoMHf9R_w Transcribed with aloha by the AI ʻohana 🌺 ======================================================================== [00:00] So, my name is Kevin Werkemann with ENS Labs, and over the past year we've worked on ENS [00:18] V2, which will be like the new version of ENS to be released very soon, but you can [00:25] already test it on Sepolia right now. [00:28] And today I will give you like a brief introduction of ENS itself, if you haven't heard about [00:32] ENS, and also go a little bit more into the details of ENS V2 and what kind of tracks [00:37] we have at the second one. [00:40] So maybe just as a start, what is ENS? [00:46] That's kind of the definition that I'm kind of like, that I've memorized, like the efume [00:51] name service, the centralized permissionless name protocol that lives on Ethereum, right? [00:56] It's like the, if you want to have an analogy, it's similar to DNS for V2. [01:03] And the original idea is quite easy, actually. [01:07] It was about turning complex HEX addresses into like human readable names, right? [01:13] Again, like similar to DNS on the web, where you turn IP addresses into domain names. [01:21] So I'd like to think ENS is a user experience protocol. [01:26] It's kind of, for me, like infrastructure on Ethereum, and in some of its best use cases, [01:32] I think you don't really like realize it's there, it's just like working. [01:39] Like in this example, like just to kind of make the point of why it's useful to have, [01:44] right? [01:45] If you want to send five bucks to me, then you could use this address, or you could [01:51] just send it to my ENS name, which I think is much easier to memorize and like a very [01:55] helpful thing to have. [01:59] But that's just how it started. [02:00] At this point, ENS has become much, much more, it has grown over the years. [02:04] And ENS essentially also allows you to have like an on-chain user profile for yourself. [02:10] This is a photo of my profile on the ENS Manager app. [02:14] As you can see, there's my X account is connected, my GitHub handle is there as well. [02:19] You can have multi-chain addresses. [02:22] So for different chains, not only EVM, also like, for example, Bitcoin, as in this case, [02:28] you can store your address there and the wallet or some other kind of application can [02:32] just fetch this information from ENS on your mainnet. [02:37] And then like a wallet can use it to, I don't know, send Bitcoin to this address, right? [02:43] So this is one of the things that you can do. [02:45] We will get into some other things a little bit later, but just to give you an idea of [02:49] like what it has grown to. [02:53] Maybe like a few examples of what a common integration of ENS looks like. [02:58] If you connect to some D app, the typical kind of like default thing that you would see is [03:02] something you connect your wallet and then if you're connected, you can see like maybe [03:07] a small avatar thingy with your address, right? [03:11] With an ENS integration, this could look something like this, right? [03:14] You take the avatar that is stored on chain or like referenced on chain in your ENS name [03:19] and your ENS name to present like the user, like to provide like a more personable experience [03:25] to the user in your app. [03:28] Two examples for apps where this is already live. [03:33] Snapshot.org, Marcher X, Y, Z, but there are like a lot of other apps that are doing this. [03:39] For example, here, this is etherscan, you can see kind of the difference of having [03:45] like named, like having ENS names being used or like just having addresses. [03:53] In one case, you can see I kind of can understand, okay, like it's coming from here, it's going [03:57] there and so on and so forth. [03:59] For addresses, you don't really understand that, right? [04:05] So in general, the idea is that users of crypto part experiences should never have to [04:09] interact with a hexadis, right? [04:10] And like going back to the ENS user experience protocol at heart. [04:16] And yes, anywhere you read or write a hexadis, you should be able to use an ENS name. [04:22] So how does it work? [04:23] I've already kind of teased on like technical side, there are two processes. [04:30] One is called forward resolution, so that's kind of the established name in the ENS world. [04:34] You start from a name like nick.if and you resolve this into an address. [04:39] It can be an Ethereum address, it can be base address, optimism, it can be Bitcoin. [04:44] In this example, unfortunately, the addresses are the same, but they can be different, right? [04:49] You can have a totally different base address, for example. [04:53] So it actually, when the address resolution happens, the forward resolution, you would [04:58] provide like the information, like let's say the chain ID, it's not the chain ID, [05:04] but essentially the chain ID of like what kind of address do you want to get back [05:08] when you do the resolution. [05:11] Then there's also reverse resolution, which is just a reverse direction, going from an address back to a name. [05:18] And if you combine both, this is what we call a primary name, so it's like a bidirectional thing. [05:24] And it's essentially also what is being used in the examples I showed you before, [05:30] where after you connected your wallet, there was your username and avatar, [05:35] because the wallet obviously is going back from the address to the name, right? [05:41] So, yeah, let me talk about DNS V2 a little bit. [05:44] DNS V1 has been like quite popular and just, I guess, quite established in the ecosystem. [05:50] V2 is a whole redesign of DNS V1. [05:54] And it became kind of necessary because DNS was very early, I think, [06:00] like one of the big projects in the kind of childhood of Ethereum, I'd say. [06:07] And over time, the applications, like the things that people have used DNS for, [06:11] wanted to use it for, kind of changed. [06:13] And DNS had to grow with this, but of course, at some point, [06:17] because it was not designed with these kind of applications in mind, [06:20] like there are some shortcomings, right? [06:22] And DNS V2 kind of takes all of these experiences and puts it into like totally new structure. [06:29] I guess one of the most obvious differences is that in DNS V1, [06:34] you essentially had like one flat registry structure, [06:39] which means even for like subnames, you can see here on the left side, [06:45] like there's Alice.Eve, which is maybe like a name that you would buy. [06:49] If you have a subname for that one, like sub.Alice.Eve, [06:52] all of these things were living in the registry, like one smart contract on Ethereum. [06:58] And actually, the actual like parent-child relationship was more or less encoded in the name hash, [07:03] which is like a certain algorithm that is being used to hash together like these kind of names. [07:10] But in DNS V2, this is something that is made explicit on chain. [07:14] So on every level of the hierarchy, you actually have smart contracts that are registries in their own right. [07:21] And I guess that's something to get used to. [07:25] Also, these registries technically don't know, per se, like where they are in the hierarchy, [07:33] because they are never storing the full name, as it was the case in DNS V1. [07:37] They are just storing labels. [07:38] That's why you can see like here, these small labels, Alice, Bob, whatever. [07:43] So the registry itself is kind of mounted in a certain position in the V2 hierarchy. [07:49] But you can also kind of unmount them and mount them somewhere else. [07:54] And then all of a sudden, like a different name would kind of start to exist, right? [07:58] So it gives you much more flexibility in what you can do, [08:02] because you can take an existing subtree of the whole hierarchy and just cut it off at some point [08:07] and mount it somewhere else without anything being lost in terms of data or infrastructure. [08:14] Then the general setup that you would do when you use DNS V2 is that essentially, [08:26] there are two kind of smart contracts that you would use. [08:29] One is a resolver, and the other one is a sub-name registry or user registry. [08:35] So the resolver is something that you would, it's like your own contract. [08:39] You would deploy this on your own. [08:41] In the NSP1, it was the case that by default, you are using what's called the public resolver. [08:46] The resolver is the contract that actually stores the data of your DNS name, right? [08:51] So when I showed you the profile before, there were like these, [08:55] my accent, like you can put a website, your avatar, and so on and so forth. [08:58] These are all data that are stored in a resolver contract. [09:03] In the NSP1, by default, this was like one contract, a public resolver, [09:08] and there was always the option to kind of use your own custom resolver, [09:12] but that was not the default, right? [09:17] In the NSP2, it's now the default that you will deploy your own resolver instance. [09:22] So it's like deployed through a factory proxy. [09:27] And so you can very cheaply deploy this resolver, and it stores all of your data. [09:32] And this enables like a lot of different possibilities in terms of configurability in the NSP2. [09:40] Similarly, if you want to tokenize subnames of your name, [09:46] then you can deploy a sub registry. [09:49] And this is the kind of situation where actually you would kind of extend the NSP2 hierarchy [09:57] that you saw over here. [09:59] For example, here's Alice's registry. [10:01] So if you want, you can deploy such a registry contract to tokenize subnames. [10:09] Yeah, to tokenize subnames. [10:11] It's actually not necessary. [10:12] You can also just use your resolver to create subnames, [10:16] because once you write records into your resolver, they start resolving. [10:20] So if Alice decides to kind of, she wants to use sub.Alice.EVE, [10:28] then she would just tell the resolver, [10:30] hey, set like summary theorem address on this subname. [10:34] And it would resolve in the NSP2. [10:36] So it would kind of like, it comes into existence. [10:40] The only thing is that it's not tokenized yet. [10:42] So kind of the decision in the NSP2 is for you, do you want to tokenize your subnames? [10:48] If you just want to use subnames, for example, [10:50] to get paid on a different chain or whatever, [10:53] and you want to have like a short handle for that, [10:55] like, for example, base.pay.Alice.EVE or something, [11:00] and you just store your base address over there [11:03] to make it easier for people to discover, [11:05] you wouldn't necessarily need to tokenize something like that. [11:08] You can, of course, you can deploy a user registry. [11:12] And in this case, you also get a token. [11:16] But generally, I like to think about like registries [11:21] as something that only makes sense [11:23] once you want to hand out subnames to other people. [11:26] And specifically, NSP2 has a new system in place, [11:34] like a permission system, like we call them worlds. [11:38] You can define certain worlds on names, [11:42] on the resolver level and also on the registry level. [11:46] And these worlds permit the user [11:48] to be able to do certain things. [11:51] For example, there's a role for a user [11:53] to allow them to renew the name or to set the resolver, [11:56] so to point to a different smart contract [11:59] or to set a subregistry on their own [12:02] so they can also issue subnames, for example. [12:05] All of these things, when you have a setup like this, [12:09] for example, where you put like a registrar contract [12:12] on top of your subname registry, [12:14] you could automate this process. [12:16] You can say, for example, [12:18] I don't want people that register subnames [12:22] under my .if name, [12:25] I don't want them to be able to transfer them [12:26] so they're kind of like so bound. [12:28] That's something that you can do. [12:30] Or you can say they cannot set their own resolver [12:33] or they cannot set their own subregistry, [12:34] all of these kind of things. [12:38] When you design this kind of system, [12:40] you can think about what kind of permissions [12:43] make sense for you, so you can furnish [12:44] the whole subname space to whatever [12:47] you want it to be, essentially. [12:49] But you can also be extremely permissible [12:50] and say they have essentially the same permission [12:53] that you would get if you buy a .if name. [12:58] You can do it whatever you want. [12:59] And maybe you even want to, like for the parent name, [13:01] you can register it for, I don't know, [13:03] like 100 years or something [13:05] so that it essentially never runs out. [13:07] And you give the subnames away for free [13:10] so they become kind of forever names. [13:12] So there are like a lot of different things [13:14] that you could do that I think are interesting to do. [13:18] But generally, the thing that you have to think about [13:24] is kind of do I want to tokenize subnames or not? [13:28] Do I need to deploy a registry? [13:30] Or if I only want to use subnames [13:32] kind of as like data-only entities for myself, [13:36] then you can do this with a resolver already. [13:39] Another thing that is new in ENSP2, [13:43] which I guess takes a little bit of time to get used to [13:45] is that in ENSP2 tokens, [13:49] like tokens, like meaning names in these registries, [13:54] they have a mutable token ID. [13:56] So as they are like ESC1155 NFTs, essentially, [14:03] but with a token ID that is changing. [14:05] And the reason for that is that this permission system [14:08] I was talking about, [14:11] you need to make sure that, for example, [14:13] if a name is being sold, [14:16] like you're not getting scammed essentially, right? [14:19] So you want to make sure that, for example, [14:21] on grant and revoke of these permissions, [14:23] a new token ID is created. [14:25] So what is happening behind the scenes [14:26] is that the token is regenerated. [14:28] The token is destroyed and minted to the same owner [14:31] without them really noticing it, [14:33] but the token ID changes. [14:34] So if they were to kind of put it on OpenSea or whatever [14:38] for sale, and then afterwards change the permission somehow [14:43] to scam a buyer, then the token would be destroyed [14:47] and minted again with a new token ID [14:49] and the offer would go stale, right? [14:53] So most of these things, like mutable token IDs, [14:56] you usually don't touch this, I guess. [15:00] But it's good to know about this right because you cannot assume that an ENS name has a fixed like a constant token [15:06] token ID it will change upon like different [15:11] Actions, but if you for example if you just like transfer the name [15:15] From you to a friend or whatever then the token ID stays the same [15:19] So it's it's really just a thing that's kind of related to expiry of a name and like this kind of world permission model [15:27] So yeah, like why should you be why should you be excited about ENS V2 so ENS V2 I think mostly for me [15:36] Brings like a lot of flexibility [15:39] To the table as compared to ENS V1 [15:43] Like a lot of things that you had to kind of where to deploy custom contracts on ENS V1 [15:47] You just kind of works out of the box of ENS V2 [15:50] it sounds maybe a little bit technical right now because I'm trying to explain the technical side of it, but [15:56] In reality actually if you kind of create your if you buy any like an ENS name and [16:02] Like deploying the resolver and so on so forth [16:04] There's a front end for this and you just have to push a button and everything happens on its own essentially [16:08] Right, so there's not not a lot of things that you have to do unless you want to obviously so in the ENS V2 dogs [16:14] there are [16:15] Code examples for all of these things so how to deploy a resolver how to deploy user registry how to [16:22] Delegate permission and so on and so forth there are code examples for all of these things [16:26] So you had a permission model actually I think it's very interesting especially like in the context of this hackathon because we can do things like okay [16:35] Yeah, I have I have a resolver and on this resolver there are I don't know 10 people and [16:42] My product is I have a payment processing agent that [16:46] Makes sure that for all the people on my resolver they each have their own Bitcoin address for example [16:52] And whenever they get a payment to this address [16:55] They might receive like a new address like kind of rotating the Bitcoin addresses, right? [17:00] But automatically essentially so and you can give this agent permission to access really only this one record [17:07] Only this one address record and he can do nothing else. He can just swap [17:11] These addresses, right? So I also would like block a tick article recently on this kind of topic [17:17] That's just an example. Obviously, but this permission system [17:22] Excuse me. It's very strong in what you can do [17:27] Like what you can for example like an agent allowed to do, right? [17:31] And then also there's aliasing, which is also quite interesting [17:36] Aliasing is essentially you can share records between names. So there might be like a default record [17:43] That you [17:44] Want all names to share once they are kind of like newly registered? [17:49] And then maybe on later on they kind of can use their own records or whatever [17:53] but in the beginning but by default they all share the same records or [17:57] You have like some setup for your brand and the and you want certain names to also share records or whatever [18:05] So like it's an interesting feature. I think as well [18:10] Yeah, maybe we quick [18:12] Have a little some time left here. So [18:15] Agents as namespace is also interesting. Try to use sub names for your agents [18:20] There are also a few [18:24] Specifications already in place that links different standards in SAP 25 is linking 804 and DNS [18:34] Maybe we quick [18:35] So what can you build AI agents a lot of stuff with our agents use usernames text records very important also data records [18:42] subnames places in general if you build a wallet and obviously like usernames avatar primary names are things that you can use or [18:49] You build like a social kind of platform again, like you know, it's also like about identity, right? [18:56] So usernames avatar and these kind of things you can use it over there and maybe like one underexplode areas content. There's also a [19:03] Fiat caught the content hash that you can use like for decentralized websites [19:07] so maybe [19:10] Yeah, that's kind of like the credo or like anywhere your app shows a hexadell should instead showing us name [19:16] Let me get to the prices we quick so we have two tracks one track is the best use of the NSV 2 [19:25] 1000 for the third price [19:29] 2000 for second and [19:30] 3004 first place and then for the continuity track also like 1k for first and second price and then 2k for the [19:40] Finalist yeah, then this is my telegram and there's also an ENS developers telegram group [19:49] Yeah, feel free feel free to just come to the booth or text me on telegram [19:55] Yeah, should have any questions [19:57] Happy to answer them. What is the continuity track? [20:05] I mean you are aware of the general system or you're asking specifically about DNS [20:12] Well, the idea is you so maybe to make it clear. It's good that you're asking actually [20:18] In SV 2 is not live on Maynard right right now, right in SV 2 is on Sepuliar [20:23] So for the continuity track you would extend an existing application or project to integrate in SV 2 [20:30] Which is a little bit hard because in SV 2 is not on Maynard right now [20:34] but then again, it kind of depends on like what project you are working on and [20:39] You might be able to integrate in SV 2 anyways to just get it kind of like to a state that when it hits [20:45] Maynard you can just kind of [20:47] Like flip the switch essentially right and integrate it and have it live [20:51] With the continuity trick I suppose we are like a little bit more like lenient on what we allow for you to do [20:59] All right, because the NSV 2 is only on Sepuliar right now [21:02] Yeah [21:04] Yep, what work remains? [21:17] Where they have been like multiple stages of like auditing also, right and then there's also [21:23] migration work necessary [21:26] Or like like there are different stages to the migration and so yeah, that's kind of I guess doing the most [21:33] The biggest part of the of the work, right? [21:39] Anybody else? Okay. Thank you