Bob Wallet Deep Dive

In this more technical overview of Bob Wallet, developers can learn how to claim their Handshake airdrop, reserve names on Handshake, and how anyone can set up address aliases and send/receive HNS with their domain name.


(00:01) [Music] [Applause] so [Music] [Applause] [Music] [Music] [Applause] [Music] all right thank you all for sticking with us it’s been a long first day i mean lots of intense learning and sharing and inspiration so thank you for all the speakers and panelists and participants and sponsors i mean like uh like paul had just said it’s it’s it’s amazing uh community here and and uh really appreciate everyone’s participation especially rhythmic you know two times in the same day one it

(01:05) was here at towards the start i think your second session um and now you’re back again to go even deeper into the even deeper even deeper into bob wallet um there’s some updates i think luke we mentioned that he helped finish hip two uh well-known wallet i think you’re sure and you’re also gonna share about the airdrop you know um and the alexa 100k process today um in this session so um i’m really excited for this rhythmic i actually have to claim alexa 100k at least one uh one i’m a direct partner

(01:40) in i don’t know how to do it and another one is a friend’s site that wants to do it so i’m excited to have this session um all right so without further ado ruthvik take it away thank you again so it’s actually pretty simple so um [Music] let’s just start let’s go okay so this time we’ll take a look at the developer airdrop the reserve name claims and finally address aliases that’s hip too so first is the airdrop if you’re new to handshake then you may have found out about it because of the

(02:22) air drop like the white paper explains handshake is experimenting with this distribution and allocates a majority of the supply to foss that’s free and open source software devs and the public fun fact the 10.2 million dollars raised were all just given away to various force communities like um mozilla eff and fsf and others and so about 46 percent of the total supply is reserved for open source um dev airdrop and if you meet the requirements listed on the next slide you may be able to claim 4200 hatchiness so

(03:08) let’s see so if you’re eligible if at least if you meet one of the criteria here so either you have a github account with 15 or more followers in feb 2019 and had at least one as such or pgp key registered on github that key is is needed to claim the reward by the way so if it’s expired i mean if you’ve lost it then that’s just stuff like or if you have a pgp that’s part of the web of trust strong set or if you had a hacker news account linked with key pace and the hatch an account was created in or before 2017

(03:53) then you qualify so how do we claim bob has a dedicated page for it and if you’re verifying with ssh or pgp the two different redeem buttons on the right you can pick the respective button so here you enter the private key of that’s either the ssh or pgp key and if it’s encrypted enter the password of course if you aren’t comfortable with entering private keys into another software there’s also the official cli called hs airdrop and you can inspect that code and you can even run it in an aircraft

(04:33) machine or in a docker container so um for details on how to do that test some manual instruction and check out the hs airdrop repo on github anyway so continuing with the flow bob automatically fills in the address with your wallet from your wallet this is where the hatchiness will be deposited from though and the way the airdrop works is unique is a unique nonce is generated for every possible uh claim or reward like it’s like leaf and it’s encrypted with the user’s key that’s scraped from github

(05:16) back in 2019 so at this stage we try to decrypt all nonce values to find the key to find them to find the right uh nonce finally the proof is created and signed then you can encode you see the encoded proof and if you’re interested you can decode it it’s b64 and finally if you broadcast it it will be mined in the next few blocks and it will update your wallet and balance one thing to note though is that the airdrops are included in the coinbase transaction the same that pays out to miners so we’ll take 100 confirmations for it

(05:59) to be expandable that’s around 17 hours it’s pretty simple um before next is reserve name claims um so handshake is backward compatible with i can root zone at least as of mainnet launch that’s how you’re able to visit dot com um domains even when while using a handshake resolver so that’s possible because all i can tlds are reserved along with the top 100k domains in alexa’s ranking again as of 2019 um so yeah those 100k domains have their deal uses or reserved on handshake for example the handshake name eff is

(06:55) reserved for the owner of by the way rip alexa because it’s shutting down in me there are a few more restrictions and more info on channel available in the hs names repo on github again in the same park um in addition to the name the owners also get hms france has created this school table that shows how the hns is distributed he’s also made a twitter bot that tracks these claims as they happen as you can see most domains get around 500 hms and most dlds get 30k hms and i can especially they get 24 million

(07:42) hms if they ever claim it we’ll see so and there are a few requirements before claiming that you should know um first it has to be observed in the list that list cannot be modified because it’s part of consensus there used to be a site called but that went offline a few days ago it let you check the eligibility easily but um well it’s offline right now you can also check it directly in bob that will we’ll see that in the next slides um second dns must be set up correctly domain ownership

(08:26) is proven using this chain of signatures from the icann root ksk to the signature of the dx sorry the txt record of the domain um at the minimum the ds record must be added to the parent that’s usually the tle registry um third since sha1 sha 1 is no longer considered secure handshake won’t accept proofs that use this digest type so some tles like dot click can’t be claimed but any domains on that tld can’t be claimed right now because the ds records placed in the root zone by the tle registry is weak it uses weak al

(09:12) writers type show on um you can use a dns sec analyzer to check what algorithms type is used for your domain and bob shows it too of course and the last point is as of now reserve names must be claimed before feb 2024 that’s four years since maine at launch names that aren’t claimed in the first four years will be opened or can be opened for auctions then but if you’ve been a part of the community you’ve probably heard that there has been some discussion going on about extending this by another four

(09:53) years with a hard fork but in case that doesn’t happen um it’s just better to claim as early as possible so how do we claim reserve names there are four ways and matt zipkin who added this game feature to pop in the first place has a detailed video going through each of the options the first one and the easiest to use is what most people will need um that’s the online dns service this is where you add a txt record along with your other records to prove ownership that’s the easiest and we’ll just see

(10:35) what how that goes we’ll get back to the other three later from um oh yeah the bug is not i don’t know what that is it just started this morning okay yeah okay up from the same bob’s claim page um start the claim process and enter the domain name that you own it shows the handshake name that you’ll that’s reserved and you’ll be getting along with the hms associated with that name then after four options we’ll go with online dns service for now um we’ll get back to the other screen

(11:14) later now bob shows up gives you a txt record this record value starts with hms or text in this case it can be anything based on network so that’s the encoding of a regular handshake address this address belongs to your wallet so the name and hns will be deposited to that address when claimed um so you copy the txt record add it to wherever you manage dns like it could be cloudflare or dng for anywhere else and once that’s set just press check dns to confirm that the dns is set you can use dig to query your resolver you see

(11:56) that um you see the rr secure that’s the signature of the txt record that’s signed by the status okay that’s signed by the case but i’m not going to go into dns now um and that’s it so once you submit it it’s done the proof is submitted and it will show up in the wallet when it’s mined in the next few blocks but one thing is special about reserve names is that it cannot be oh it’s a problem or i’ll just continue um so reserve name claims are special and they can be registered after 30 days

(12:37) only not one day per like the air drop thing so this is to prevent a few attacks like with dns host is compromise and came and an attacker claims a name then the real owner has 30 days to send a new claim with um to take back ownership so that was the simplest method where you just added txt and verify the next three methods don’t require modification to the zone itself to the publish zone the second method that’s local dns key can be used if you have a zone signing private key file on hand on the same machine

(13:24) instead of adding a txt record and the host and the dns host signing it for you bob can do it for you without adding it to the published zone the third method offline dns key is when you have the zsk on a different device here you copy the txt to somewhere else generate the rs6 there then copy the rrsync back into bob and the last message last method is meant for use with when private keys are stored on hs samsung hardware security modules it’s similar to how hardware wallets store seed traces for your crypto wallets

(14:08) but this is for dns keys so in this case a library called bns proof talks to the hsm and science the zone or records uh i’m not going to go into detail because most people don’t need it and matt already has a video going through each of these methods okay so that completes um the airdrop and reserve names and we can move on to address aliases yeah people seem excited finally um so yeah this is a new feature that will be available in the upcoming release blog it brings ens use case to handshake domains that’s naming wallets with

(14:58) handshake names um yeah one thing to note is um the hip was authored by fernando and tines and was implemented by luke and bob um right so with this it’s possible to send hatch and ass to names instead of having to type out the complete address yeah um so it’s based on hiv 2 which you can see here it defines how the name resolves into an address um we’ll get to that so what we do here is because when you let let’s just see it and bob first yeah so you can type in a normal address starting with one or

(16:01) if you add an ad then it goes and you can type in areas like and gives you his address directly and you can send anything that you want without typing in the address same goes for concept and what’s special here is you see that the address changes every single time so right now it ends with v2w you try it again you get a different address so that’s um good for type c we’ll get to how that works it’s not just this you can also have i can domain so fancy dot me is a legacy i can domain on the dot meteorly

(16:56) or there is nathan’s okay so how does that work so according to the hip it’s just a regular https request like what a browser would do and because of that there’s no dependency libraries that you need or dns that you need to integrate it with other apps or services hopefully name base and other apps and services supported too someday oh and um i think you can see from the example it’s not limited to hms it can work with any symbol so you can have bitcoin or ethereum addresses too so what’s really happening behind the

(18:00) scenes bob is sending a sim making a request like any other browser in fact you can just visit that url with that path and you can see the text here there’s nothing special about it it’s just one string of address on a page right um okay so it looks great but how do you set up your own tles or domains to resolve um these dear diesel domains to addresses the easiest way is with fernando’s sympopus which is here all you have to do is set it up like a normal domain go to android scientists and set the address it’s the simplest way that there

(18:59) is right now um or if you only have a https website again handshake or icann domain everything works um you could just add a text file at that path at the well-known path and it will just work but how this differs from ens is you can run a server that dynamically generates addresses based on criteria could be location or anything it right now it does it for every request but it could have its own restrictions and other complex logic um i think this stuff with a quick q a before moving on to a demo of showing how you set up from scratch

(20:04) um yes zenpopus has an option for sles that’s i think he’ll talk about it tomorrow but yeah it’s possible okay i think you got most of the questions in the chat uh but if people have questions so far um before with it moves move to the next stage i’ll just work with sles on say name cheaper gateway or yeah yeah it’s everywhere as long as you have dnsec set up properly it will work so yeah it means it’s at the protocol level right it’s on the handshake protocol so these are all dapps or apps right name

(20:48) cheap name base gateway agamin they would need to integrate or implement that protocol update right kinda they need to make changes yes but it’s very simple it’s just making it’s like um it’s like a basic request it’s the most basic request that you can send it’s just um like even with http you have multiple ads okay you have multiple kinds of requests like um get post or whatever and get is what you send when you visit any website like github it’s something you get so that’s all you’re doing

(21:31) so um yes they need to make changes but it’s minimal okay so let’s hope they all can adopt it but they have to probably do something on their side um to to do an upgrade or update on their interface or on their uh on their side to reflect it but uh from what risk saying is hopefully not a huge amount of resources for them to do you can hope let’s hope yeah guys make sure to uh any other uh questions that you may have make sure to drop them in the q a chat so we can keep track of them better and don’t lose them in the uh chat

(22:10) uh and then after risvick does this uh from scratch uh setup then we can have some more uh q a at the end as well okay great so i don’t know i hope people understand i mean obviously i know there’s a lot of develop developers here of me i’m i think risk fiscal or more business but this is basic basically like ens domains i know all these people on twitter use so that’s basically what means i even we did a competition a raffle for this uh handicon opening where we gave two winners 50 hns but we had to still use

(22:43) that long ugly hns address but what this means is you can send it to your h name to uh and it doesn’t have to just be hns coin it could be ethereum bitcoin it even would work with a non-hms domain he’s saying and you can you just really clarify for us i i tried to write it down but you said the difference with ens is is this is dynamic addresses whereas ens is only one address static address i think right yeah things with ens you put the addresses on chain but here it’s not on change it’s a server that’s

(23:21) giving out addresses so it’s up to the server to either get the same address every time or if it wants to change it or it can be dynamic it can be made dynamic but that’s not possible with dns i’m trying to use cases but it sounds probably better if you could change the address uh without having to do an on-chain update because i know people complain about ens domains they gotta do like a gas fee and a transaction on the ethereum blockchain to change their address on their uh ens name so um okay well i just want to clarify i’m

(23:58) hoping everybody’s following this but um as you can tell i’m kind of excited it seems like exogens also decided i think to be a great use case for uh the handshake names is uh his wallet address is built in so thank you okay so yeah you’re gonna do a demo then right next and then if people have more q a yeah let’s the chat is chat but if you have a specific question let’s try to use the q a tab okay um so we’ll start with the blank vm that you’ll um okay so you could do a static thing like how

(24:34) senpai is doing but we’ll go with what with the server that man zipkin has written which generates addresses for every request like how proof of concept does so we’ll start with a new droplet or a new vm yeah it can happen with btc and ets also um it’s again it’s up to the wallets to indicate it or not let’s go with the basic five per month vm choose one closest to me this is basic stuff nothing changes here so while that’s created we’ll just take a look at the software

(25:38) that’s here um so the second software um you need to get the xbob key or the xbox key from bob wallet or any other wallet that you have um so you need uh so you go to settings network you have a and then api key that’s your api key and you know your wallet name so which is those two api key and then getting the accounts xbox that’s all you’re doing so you get this value and you note it

(26:40) down this is what generates addresses for every single request um i think it’s created yeah um just gonna add an ip address so that it’s permanent so that’s the end um [Music] your host he’s gonna hit this let’s zoom in a bit

(27:46) this is a blank vm there’s nothing on it and we’re doing it this route which you probably don’t want to but it’s just a demo so i’m just going ahead first things first we’ll just clone this repo the server now the thing is you need node.js to run it so we’ll see and the good thing about this is you don’t need to build it because the build folder already has the compiled um on the script

(29:00) oh but we’re inside the extra that we got from the wallet account here just quickly replace that thing there’s a folder called conf and a file inside called xbox which is replacing that string with this i can start the server right out and if we try to query this so send a nominal request see that’s an address being templated

(30:06) here it ends with 25 g do it again you get a different address so that works um next is to get ssh um ssl but um so i’m just going to part follow this guide where you install engine x that’s a website it was proxy in this case now we have nginx um we don’t need any content so i’m just going to skip all that

(31:11) this is okay so this works and for nginx um we’ll take this bit we’ll simply for now i’m just going to call it dynamic hip2 just my audio go on no it’s not okay okay so just call the plan and your template remove this for now domain name will change i’m going to set up this timeline because that bb bb8 already has dns sec and everything ready exactly there’s no coding here

(32:21) it’s just setting up a few conflict things and um let’s just say maybe it quickly i think we can finish this in time or even early so was which is enabling that say

(33:27) with engine x now if you call okay um one thing was of the ssl swords that we need to generate probably have noted it down somewhere but okay here so we’re gonna put the same thing but just change the name we could just put dynamic or bb8 here but just replace it okay so um

(34:40) we’ll have to put the search somewhere i think just can put it in root as a cell and name and we just move the certs before moving we just note on the tls oh my god and let me move this to that folder new folder and that’s the thickness there’s no errors just

(35:55) that’s it so that takes care of this server which you can we’ll need to add two more records at the dns host so this is where the dns server is um please ignore most of this just the last two lines are what matters if you’re using hackers hub then you won’t need to do any of this it’s just i’m doing in the terminal but it’s the same nice and the value we copied from there goes on the dns thing and nothing so you have dynamic pointing to the web server

(36:59) and you have a tls record for dame oh oh me too again this is again it’s gonna be a buying thing you wouldn’t need it on microsoft just come and reload custom we can see that you see the ip that’s being returned so the records updated um that should do it straight on so this bit inside of proof concept we have dynamic dot hopefully what broke

(38:05) i think something has to break that’s oh wait did we restart engine what about without let me start engine x hmm we have five minutes left i think we could walk okay so the software is fine it’s

(39:26) returning the address over https let’s see it’s the thickest thing this is six minutes

(40:29) in fresher totally it’s fine okay what could be wrong so the dlc like guardians 625 that’s good is it not saying hmm

(41:57) okay it’s something to do with tnsec but this is pretty much what you need to do to get a dynamic address for hiv 2. it works um okay that works i know what that problem was but um so you see that it’s ending with fup right now you try it again and you get another address so that’s it um that was i don’t think so that’s that and that ends this

(43:04) presentation if you have any questions feel free to join the telegram groups or discord servers for bob and handshake obviously um and i don’t know just feel free to reach out if you want to talk about anything handshake related yeah risk you’re a handshake super user you’re always answering people’s questions always helping out in the community so uh just thank you for for everything i don’t think he hears us it’ll be a long soon did they use the q a i don’t know there’s lots of questions they’re coming

(43:45) in i think is working on something trustless which might make it easier for other services to renew on your behalf that might be more stable but if it’s within bob then okay can’t hear you again oh it’s gonna work very fresh but i think we can just end it it’s fine like two minutes yeah i i don’t yeah ruthvik i don’t think can hear us right now but uh does anybody have questions let’s try to use the let’s try to use the um q a section so we can just put it up on screen well we gotta transition to the yeah i

(44:34) guess we’re basically done like last time unfortunately i don’t know what was going on but um but anyway i mean yeah people were really amazing he did it live on on a live demo so that’s awesome and yeah we’re all just saying we appreciate you horrific uh he can’t hear us okay now you can okay now i want to say respect thank you for everything you do in the community thank you for all the help that you give out to uh everybody uh that asks questions in the in the server and everything so uh yeah just again thank you

(45:14) yeah i’m glad all right so we’re at time we’re gonna end it here and have a little break and then um alex smith and uh thomas are going to take us carry us home and talk about a handy host yeah that’ll be the final session for day one so great job everybody and then tomorrow we have the first auction the ukraine fundraiser to start at 12 noon pacific um two hours earlier than today and then a whole full day of amazing amazing sessions so um we’ll see you in the next session today and then a quick break

(45:50) all right see you guys in the next one [Music] [Applause] [Music] so [Music] kinetic is a blockchain crypto investment firm based in hong kong and puerto rico [Music] founded in 2016 they were the first fund in hong kong and one of the earliest in asia with a portfolio of over 220 companies

(46:55) they were seed investors in such projects as ethereum parity and polka dot solana ftx and of course handshake and name base [Music] founder johan chu was an active investor and supporter of the handshake ecosystem over one hundred thousand domains co-founder of d-web foundation co-founder of handicon and sponsor of the handshake house at miami hack week 2022 [Music] [Applause] [Music] [Music] [Applause] [Music] [Applause] [Music] [Applause]

(48:03) [Music] [Music] [Applause] you