1 of 25

Nick Johnson

nick@ens.domains

Ethereum Name Service

This event is brought to you by workonblockchain.com

2 of 25

Overview

  • What ENS is & how it works
  • ENS resolvers in practice
  • Using ENS in DApps
  • Registrars & name registration
  • State of ENS

3 of 25

What is ENS?

0x112234455c3a32fd112

30c42e7bccd4a84e02010

4 of 25

What is ENS?

inigomontoya.eth

5 of 25

More than just names

ENS names contracts and accounts, but also…

  • Swarm & IPFS records
  • Legacy DNS records - IP addresses, mail exchangers
  • Identity attestation
  • Stores contract interfaces

6 of 25

What is ENS?

  • eth
    • inigomontoya
      • wallet
    • metamask
      • alice
      • bob
    • oraclize

7 of 25

ENS Architecture

8 of 25

Resolving a name

9 of 25

ENS by example: Resolvers

Contract MyResolver {

address me;

function MyResolver() {

me = msg.sender;

}

function addr(bytes32 node) constant returns (address) {

return me;

}

}

10 of 25

Using ENS from Javascript

var ENS = require(‘ethereum-ens’);

var ens = new ENS(web3);

11 of 25

Looking up names

var address = ens.resolver(‘inigomontoya.eth’).addr();

12 of 25

Reverse resolution

var name = ens.reverse(‘0x112234455...’).name();

13 of 25

Setting up reverse resolution

In JS:

reverseRegistrar.claim(eth.accounts[0],

{from: eth.accounts[0]});

In Solidity:

reverse.claim(msg.sender);

14 of 25

Contracts in web3

var testContract = web3.eth.contract(

[{"constant":true,"inputs":...}])

var test = testContract.at(“0x0904dac3347ea47d208f...”);

15 of 25

Contracts in ENS

var test = ens.resolver(‘inigomontoya.eth’).instance();

16 of 25

Registrars in ENS

REGISTERED

17 of 25

ENS by example: Registrars

contract SimpleRegistrar {

ENS ens;

bytes32 root;

function claim(bytes32 label) {

if(ens.owner(sha3(root, label)) != 0)

throw;

ens.setSubnodeOwner(root, label, msg.sender);

}

}

18 of 25

The .eth registrar

19 of 25

ENS status

  • Launched on mainnet on May 4 2017
  • ‘Soft launch’ finished July 12 2017
  • Responsible for 24% of all gas usage on mainnet

20 of 25

180,822 names auctioned

21 of 25

Ξ168,595 Ether deposited

22 of 25

Top Domains

  • ethfinex.eth Ξ201,709
  • sportsbet.eth Ξ188,888
  • consensys.eth Ξ184,811
  • weifund.eth Ξ184,400

  • darkmarket.eth Ξ20,103
  • openmarket.eth Ξ10,054
  • exchange.eth Ξ6,660
  • blackjack.eth Ξ5,910
  • tickets.eth Ξ2,976

23 of 25

Client Adoption

24 of 25

What’s next

  • Voluntary dispute resolution / blacklisting
  • Exchange integration
  • DNS on ENS
  • ENS on DNS
  • Designing the permanent registrar

25 of 25

Any questions?

This event is brought to you by workonblockchain.com