 Gadaftwnun, maineis Nick Johnson. I am the Team Lead of Ethereum Nameservice. Since we received very generous grant funding from Ethereum about six months ago, ENS has turned from a one-person's spare-time project into a fully funded team of nine people and we have been spending the last six months building out the ENS features and functionality that we think will make ENS integral to the future of Ethereum and Web 3. So today we're going to go over the new look, what we're doing about ecosystem support, how we've been integrating with DNS, our new ENS management tools, and some R&D on the new registrar that will replace the current auction system. So first of all, as you've probably noticed already, we have a new look, a shiny new logo and so forth. This represents the fact that ENS sort of takes the sharp edges off Ethereum, and we've been rolling this out across all of our applications. So one of the main efforts that we've been engaging in in the last six months is integrating with existing DNS services. ENS, when it was launched, had only the .ETH top-level domain, and .ETH is exclusive to Ethereum and to ENS. It works only to resolve services inside ENS and so on, but we consider it to be a part of the global route, the sort of shared namespace that all DNS names exist in, and we're conscious that we want to be a good player, that we want to integrate well with them, we don't want to pollute the namespace, and we also want to integrate with existing systems wherever possible. So although ENS initially launched with .ETH, we're pleased to say that we've already launched two new top-level domains inside ENS, .XYZ and .LUX, and these both correspond to those same top-level domains in the DNS system. So let's have a quick look at how we've achieved this integration. First of all, for .XYZ, what we're doing is we're using DNSSEC. DNSSEC is the internet's system for securing domain name look-ups, and it permits us to actually prove the ownership of DNS names and the content of DNS names. So using that, a user is able to register their domain using the regular internet registrar, whatever your favourite registrar is. They enable DNSSEC, which, depending on your registrar, may just be a one-click operation, and then they add a text record under their name, saying, this is the Ethereum address I want to be responsible for this name. And then finally, they go into our tool and they submit the proof of it that's gathered from DNS that proves that they own that name, and that is the address they want it to be assigned to. And that tool then sends it to a smart contract which verifies all the cryptographic proofs and submits it into DNS. And from then, they can manage that name inside DNS. So if I own myname.xyz, I can go through this process and I can end up owning myname.xyz inside DNS. And if I go to my favourite wallet, I can type myname.xyz to send myself funds and so on and so forth. So this is a permissionless integration. It doesn't require any cooperation or involvement from registrars or registries or ICANN because it relies entirely on public infrastructure, the DNSSEC system. You can claim your own name now for.xyz via dnssec.ans.domains. And some registrars such as EasyDNS are already working to make this easier by doing most of the work on the back end for you. If you're a developer, there are a couple of client libraries there available. These automate the process of gathering proofs off DNS, compiling them together into the data that our smart contract recognises and submitting it to it. This isn't restricted just to use with DNS either. If you have an app that needs insight into DNS, you can use this. You can use it to fetch any data from DNS that is DNSSEC enabled and trustlessly prove its existence inside Ethereum. Unfortunately, of course, the trustless nature of this and the sort of crypto heavy nature of it means that it can be a little less user friendly than it might otherwise be. So the other integration we've been pursuing is with .lux. And what we've been doing here is actually working directly with the .lux registry and registrars. And they've been cooperating to integrate directly with Ethereum. So rather than sort of doing it through the open route via DNSSEC and having to do everything ourselves, this involves the registrars and the registry actually working directly with us in order to support the DNS. What this means is that if you register a .lux domain with a supporting registrar, you can simply go to that registrar's interface. You can go to the control panel and you can paste in the address that you want to be responsible for it inside Ethereum and hit go and that's it. It's just one step. So this, we think, demonstrates the sort of usability that you can get and the sort of improvements in usability by integrating existing systems with Web3. This is, .lux is available now for pre-registration and officially launches on November the 6th. And before I continue, I should actually say the integration with DNSSEC that we've shown with .xyz, we will be rolling out to a number of other top-level domains. Basically, our goal is to support any top-level domain that has the necessary DNSSEC tooling set up for it. And we'll be doing this after we've finished the new manager and we're confident with the infrastructure and the sort of beta period that we're doing now. So another avenue of research and development has been the new .eath registrar. And this is probably what a lot of you have been waiting to hear about for the last year and a half. The initial registrar when we launched it in May 2017 was auction-based, still is. And it uses what's called a vickery auction. The idea is that everyone bids on a name and then you have a reveal period. People reveal their bids and the winner is the person who bid the most. This system works very well for allocating new names initially when you have many people competing to buy the same name. But we've found it's less effective at ongoing registration. What we find is most people, most names only get bought by one person. The chances of two people wanting a name within a few days of each other are quite low. So we end up with quite a lot of auction overhead for a relatively low return. So our goal here is that we want to migrate to a new system. The new system will be instant buy. So instead of being an auction, you just buy the main for a fixed price and it will be rent-based. So similar to existing systems with DNS, you register a name and you pay a yearly fee to rent it. Before we launch this, we will have a one-off auction for shorter names. So presently, all DNS names are at least seven characters. We'll be auctioning names shorter than that on a one-off basis for a year's registration before launch and then we'll launch the new registrar and everything will transition to this yearly rent. The yearly rent will be the same price for every domain and our goal is to set it at a price that discourages sort of mass squatting but makes it cheap and affordable for people to use DNS. So our target price is more or less the same as you see with DNS names in the region of about $10 a year. At present, that will be set by us. We've been researching mechanisms to set the rent price effectively autonomously but we've been unable to come up with one that we're confident isn't gamable by people who with sufficient resources to influence the price in one way or another. Counterbalancing that, you can register and renew anytime you want and for as long as you want. So if you're happy with the rent price of $10 a year and you want your domain to be stable for a long time, you can register for a century and then you can say the blockchain ensures that this name will be owned by this contract for at least 100 years, which we think is pretty close to an ironclad guarantee for things like package management systems. It will also be built for common infrastructure like package management systems in that it will allow people to renew other domains. You can always delete your domain if you don't want it but if a domain is common infrastructure, anyone should be able to sort of re-upload to ensure it continues operating. So anyone who owns a domain in the existing model will have two options in the new registrar. The first option is that they can transfer their existing domain to the new registrar. They have a full year to do that and when they do the domain registration gets extended to a year after the launch of the new registrar. So you get a year's total extra registration. That costs 0.01 ether and the remainder of your deposit that you paid in the initial auction to register the name gets returned to you. If you don't do that within a year the name becomes available again and people can purchase the name. However, your deposit will always be returnable. The other option is that at any time after the launch of the new registrar you can release the name and get back the entire deposit you paid in the original auction. So one of the biggest things in building ENS into a universal platform is making sure that ecosystem support is really good. ENS is not much used to us if it's just a way to register names and then a way to look at names and none of the apps support it. So one of our biggest drives in the last six months has been pushing out more support for the ecosystem for libraries and tooling with ENS. And we're pleased to say that ethers.js, web3js, web3pi and web3j all now have integrated ENS support meaning that if you use any of these client libraries in your DAP you no longer need to have a separate ENS library to do name resolution. So if you are using one of these libraries it's possible your app supports ENS without you even knowing it. And in the case of web3js, sorry ethers.js for instance it actually does automatic name resolution anytime there is an address field. In the case of some of these other libraries you still need to use a separate ENS module but it's integrated with the library for you. We've also of course been pushing it out to more wallets and apps and we're very grateful for the cooperation of people such as Argent, Portal Network, Gitcoin especially have been doing a lot of integration with us and Malinport. And this is going to be one of our main efforts going forward is more developer relations, more reaching out to folks like you to make sure that integrating ENS is the obvious choice. Finally, outreach such as events like this. We held a second ENS workshop in August at which we gather a lot of feedback and ideas that have helped us improve the permanent registrar and other efforts. We had onboarding workshops here at DevCon. There's one today at 5pm if you just want to sign up for a name. And Thursday at 10am there is a workshop for anyone building a DAP or a wallet who wants to know how to integrate ENS better and would love to see you there. And we've done talks at a wide variety of events with ENS staff members. And if any of you have an event that you'd like to see us at please come talk to us afterwards. We'd love to be there. So next up, we have been redesigning the interface for managing ENS names and registrations. And to demo that, I'd like to invite Jeff Lau, the lead of the ENS project manager project up. I'm Jeff Lau and I'm the lead developer of the ENS DAP. I've been working with ENS since June of 2017 building the original manager DAP which following the launch of ENS last year. This was built as a proof of concept for this new DAP that I'm going to show you right now and it was concentrated on functionality. But with the new funding we got from the Ethereum Foundation earlier this year, we've managed to hire a UX designer and a UI designer to help us revamp the interface. So we're focusing on it to be more user-friendly and this is what the revamp I'm going to show you today is based on. So today I'm going to show you a demo of the new app. I'm going to show you how to set up your ENS name if you have one from start to finish and I'm also going to show you how to add sub-domains. So this is the new app right now. So you're greeted by a large search bar similar that you'd see on GoDaddy or any of your other registrars. And here you can be nosy and search any ENS name in the registry. So however the most useful thing you can do is search for names that you own and you can set them up for your own use. So I'm going to do that right now and I'm going to search for truenames.eath which is the ENS name for the company that develops ENS. So as you can see here I'm going to show you there are two stages for setting up your ENS name. So first we need to set up an ENS resolver for our name and secondly we need to set up the address record for that resolver. So what is a resolver and how do we set it up? A resolver is a smart contract that allows you to map your ENS name to a record. The most important record that you can set up is the address so you can resolve from truenames.eath to your unreadable Ethereum address. So how do we set up a resolver? Well the easiest way is to use the public resolver. The ENS has deployed a public resolver contract which is available for everyone to use and it will handle most of the record types that 99.9% of users will need. If you have some advanced usage you can also deploy your own resolver and point to that instead but we're just going to use the public resolver. So if I click on the pencil tool it will come up with a nice input box to type any resolver you like but we're just going to click on use public resolver which will prepopulate this with the public resolver. I'm going to click save and run Metamask and we've cheated a little bit here. We're on a private network so this is going to confirm immediately and it's going to, yeah, I really wish Ethereum was that fast but just for the demo today we're going to use a private network. So that's the resolver set up. That means we are able to add our own record types. We've got this nice little plus here to add our own record. Taking the plus we can see a drop-down menu that will allow us to choose a record. Currently we only have address and content but in the future we'd like to add the rest of the record types that the public resolver supports. So we're just going to click address here and we're just going to copy the owner address which is our own address. So we want to point true names or ETH to our own ETH address. So I'm going to click save again and confirm and that's going to confirm instantly again and now we've set up our name. So that's actually it. That's how you would set up your ENS name once you've bought it. You set up the resolver, you set up the address and now any ENS-enabled DAP will be able to resolve true names or ETH to 0x90f, et cetera. So that's the basics. Now I'm going to show you how to set up subdomains. So subdomains are an advanced feature that allow you to set up more ENS names under your root name. So if I click on the subdomains tab on this side it's going to show us what subdomains we have available. We don't have any subdomains in this right now so I'm going to set one up. So if I click on the button here you can add any kind of label for your subdomain. So we're just going to create a tip jar for true names or ETHs. So any of you kind folks who want to donate so our foundation can do so. So I'm going to save that, metamask again, superfast ethereum we're in, subdomain created and I'm going to click on this now to go into our tip jar.truenames.eth. So as you can see here the tip jar subdomain is just like any other ENS name. It has all the functionality of truenames.eth and has the owner, it has the resolver and it also has all the record fields available to it. So I could do the same thing as we did before. I could set up the public resolver, save that, confirm it, et cetera. And that's all set up nice and quickly. The other thing we can do is change the owner. So your subdomains don't have to be the same owner as the root domain. So we can actually transfer this to say a family member or maybe for us maybe like a multi-sig wallet for the truenames.eth foundation. So I'm going to show you that now I'm just going to copy a address I saved earlier. Might be my own address and paste that in there. Click transfer, confirm that transaction as you can see and that changes the owner address to the one I just pasted. So that's pretty much it for the basics of the ENS manager. We also have added in some new functionality for favoriting. So if I click on this heart button that will fill it up and I can go to the favorites panel and that shows you we've got favoriting abilities to save to local storage your domain. So this makes it easier for you if you've owned quite a few domains to manage them all separately and I can get rid of that heart and it will get rid of my favorite. So that's all the functionality for the new ENS app. There's a lot of things that we want to add to this. Let me go back to the presentation. So present. So in the future we want to add things like reverse record support which will bring up to feature parity with the old manager. We want to be able to, like Nick said, claim DNS names via DNS sec have that integrated into the DAP. Auctions for short names, three to six characters, permanent registrar support, so the instant buy, ENS now which is already hosted at now.es.domains but we want to integrate it with the original app and also advanced features like name and resolver history. And I'm just going to hand it back to Nick to finish off the rest of the presentation. So finally to wrap up, what's next for ENS? Obviously we need our top priority. We want to finish permanent registrar design and implementation. Our goal is still to get this rolled out in May next year so that everyone can transition to a more permanent model for registration and so that we can ease the registration process for new users. We want to, of course, deploy this and migrate everyone over. We're completing work on the new management interface that Jeff just showed us and of course there's the ongoing outreach. Our biggest ongoing task is always going to be making sure that ENS is as widely deployed as possible, it's as useful as possible and convincing as many of you fine folks as possible to integrate it into your apps. So that's it for today. Thank you very much.