Adding a withdrawal address with Wagyu Key Gen

EthStaker Special Events · November 2020 · 14:54

Ramin of the EthStaker community demonstrates how to add a withdrawal address to an Ethereum validator with the Wagyu Key Gen tool, using a validator on the Goerli testnet. He shows where to find the validator index and withdrawal credentials on a beacon chain explorer, generates a BLS to execution change file from the mnemonic, and broadcasts it, after which the credentials switch from 0x00 to 0x01. He recommends running the tool on an offline machine, stresses checking the address carefully because the change can only be made once, and notes that mainnet support had to wait for the upgrade on April 12.

Topics

From EthStaker Special Events, hosted by Eth Staker.

Transcript

hello everyone my name is Ramin I work with the East taker community and I'm here today to show you how you can add a withdrawal address on your validator using the wagyu keychain tool so let's get started so I've got a few Windows here uh the first one is going to be the details that we need to add this withdrawal address I'm currently running a validator on a girly this test net which is um supposed to be free um but now has a value but where you can like try running your own validator and I'm gonna use this validator simply because it's an easy way for me to demo this whole process here

so let's get started with the details that you need um in order to add a withdrawal address you will need your mnemonic so this is like the 24 words that you initially uh use and that you should still have to create your validator keys you will need your start index so this is related to the fact that you can derive multiple keys or validators from the same mnemonic if you only have one key or one validator created from that mnemonic the start index is going to be zero so I'm just gonna input this here you're gonna need the indices or the

validator indexes as defined on the beacon chain so these are the indexes that are created or assigned to your validator once it gets activated on the beacon chain and an easy way to find this value is to go on the various uh Beacon chain website so I'm currently on the girly version of The Beacon chain and I already am on my validator page here if you want to find your you can use the search tool here to search by public Key by deposit address by gravity in a bunch of various uh different ways

once you are on your validator page the end this or the validator index is simply going to be shown here at the top so I'm just going to copy here that value and I'm going to paste it here the next value that you're going to need is your withdrawal credentials and similar to the in this or the validator index you can find that value easily on the beacon chain website so all you have to do is scroll down here I'm going to the deposit tab and it should show here your current withdrawal credentials are and just simply going to copy this value here

all right all I'm left is uh to find the withdrawal address I want to put all my rewards and my eventually my validator balance into and so this address is going to be a wallet address that you have control of and that you will also have control of in the future so make sure that um this is like a wallet address that you will always have control of right so I a good way or a good practice would be maybe to use a hardware wallet or like a cold wallet somewhere um where you can you'll be able to send all the rewards and eventually if you choose to exit your that editor you'll

be able to get your full deposit in my case and for this demo I'm simply going to use the deposit address that I initially use when I performed the deposit for this validator so it's it's this address here and once I'm I'm done with Gathering all these uh details I can start uh the wagyu kitchen tool and generate a file that that'll be able to use um to add these withdrawal address another important detail here is you can

only do this on validator who do not currently have a withdrawal address and this is easy to to see with um the withdrawal credential in this case validators who do not currently have a withdrawal dress have other withdrawal credentials start with 0x 0 0. so this is the case for this validator here so I can I can keep going before running the wagyu kitchen tool um it's a good practice to use an offline machine a machine that uh never was connected to the internet and never will be an easy way to get there is to boot from a USB drive on which you

install like a live OS this is an autoscope for this demo but I'm just going to use this current machine here for this demo this is not the secure way to do it but it's just an easy way for me to show this whole process so let's start wagyu kijen here we'll wait until it loads and we'll be able to get going so in order to generate this new file to change the withdrawal address you'll have to use your existing secret recovery phrase which is just another term for the mnemonic

you have to choose a network this is for a validator on girly so I'm just going to choose girly here and then at this step um I don't want to regenerate my validator keys again I just want to generate this BLS to execution change which is a big phrase to say that we just want to add a withdrawal address so I'm just going to click on this option here first step is to input your mnemonic or your secret recovery phrase this is the place where you don't want to compromise potentially your mnemonic to any devices which is connected to the

internet right so if you are to run this make sure to run this on an offline machine but in this case I'm just gonna copy and paste the mnemonic that I used to initially create this um on this screen you'll be asked to input a bunch of values so as we uh determine we have to use the start index 0 since I only have one validator created from that mnemonic in the indices field or the validator index I'll have to input my validator

index here the one that I found on the beacon chain website if you want to do this process for multiple validator that are all derived from the same mnemonic you could like add all of them here but you have to find all of these indices or that editor index ahead of time next I have to input the withdrawal credentials so this is this value that I found in the deposits tab um same as with the indices if you have multiple validators derived from the same mnemonic you can input many withdrawal credentials here all you have to do is separate them with commas and the most

important field here is your actual withdrawal address here so this is the withdrawal arrest I mentioned that should be under your control and that should be under your control in the future as well so I've chosen to use this address I'm just going to copy and paste it here the next step is simply to choose a folder where this bls2 execution change file will be created in and I've already selected this folder here and it's going to be easy for me to reuse it afterwards so once I create once I click on this create button um I'm pretty much done my uh BLS to

execution change file was created here this is a folder and it only has a single file which usually starts with PLS to execution change with a few numbers that Json and this is the the file that you can use to broadcast your withdrawal address change all right so I should have my file here so here's the file that I can use to add a withdrawal address on my validator in order to broadcast this change there's a few different ways but a very easy way to do it is simply

to go on the beacon chain website and use their broadcast tool right so if you go into their menu there's a link called broadcast signed message and you can simply drag and drop the file there you'll see it has a bunch of different fields some of these fields can be quite cryptic but you should know that it simply includes a signature that tells the beacon chain that you want to use this new withdrawal address for your validator once I'm done I can simply

submit and broadcast the change here and it will create this change request job on the beacon chain website where I'll have to to wait a few minutes until the withdrawal address is added on my validator here so let's wait and come back once this is done I can see here that my if I come back to my validator page I can see that the current withdrawal credentials Are My All withdrawal credentials but my pending withdrawal credentials are this new value here and we're simply waiting

for a finality to confirm that the change was actually applied and we have a bunch of other information here telling us when that should be effective so let's just wait and see what we can show once that is completed all right I'm back and it seems like the epoch in which I publish my change to add this withdrawal address is now finalized so I'm guessing um the change should be good now there you go you can see now that my current withdrawal credentials are starting with

0x 0 1 which means I now have a withdrawal address on this validator let me see if we have withdrawals that are incoming so we don't have any withdrawals yet um but since I have an exist amount above 32 if I should eventually the next few minutes have um withdrawals coming in the withdrawal address that I just added on this validity there so let's come back in a few minutes and see if that's the case I'm back and I'm still waiting on my withdrawals

but I guess I'm not gonna wait too much longer it might take a while since there's a lot of validator on girly right now waiting for their own withdrawals but you should know that eventually any amount above 32 if is gonna be sent to this withdrawal address that I selected that completes the change to add a withdrawal address on my validator if I eventually wanted to get all my balance all I would need to do is perform a voluntary exit and it would send

my initial deposit plus everything that's remaining on balance to the withdrawal address before I leave you I'm just gonna remind you of a few things When selecting your withdrawal address make sure you double check and even triple check to make sure that's it's a correct address that you have control of you should try not to make any mistake there because that change can only be performed once so like it's a critical part of this whole change here

another thing I wanted to mention um as a reminder these changes cannot be applied on the mainnet yet you'll have to wait on until April 12 after the Chappelle Forks before you can publish all of these changes right so this is something we've mentioned previously but as a reminder you cannot perform this change on mainnet yet you'll have to wait a few weeks until all of this is implemented on the mainnet network alright thanks for watching this video if you need any more support or help with this procedures make sure to join

the ease sticker Discord or ask your question on the Eve sticker subreddit