> For the complete documentation index, see [llms.txt](https://launchnodes.gitbook.io/ethereum-validator-withdrawal-instructions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://launchnodes.gitbook.io/ethereum-validator-withdrawal-instructions/workflow/bls-script-workflow.md).

# BLS Script Workflow

The bls script that enables your BLS to Execution prefix change, delivers two outcomes.

#### The **first** outcome of the script is installing dependencies.

* It downloads the staking-deposit-cli based on your operating system and unzips it automatically.
* It then checks to see if your system is compatible with jq. If not, it will install jq automatically.&#x20;

*\*JQ is used to transform JSON data into a more readable format and print it to standard output.*

#### The **second** outcome of the script is collecting information and creating the bls\_to\_execution\_change.json file.

* In this step, the script collects withdrawal credentials and pubkey information from deposit-data.json file.
* From pubkey, it collects the validator indices.
* And it uses all this information to execute the command that will output a json file, which is the bls\_to\_execution\_change.json.

Having created the new json file we now need to broadcast the address change to the network so the rewards can go to the chosen ethereum address.&#x20;

#### Required inputs from the user:&#x20;

\- Deposit\_data.json file (This is the file that you created while creating your validator keys)

\- Mnemonic (Mnemonic is a 24 words phrase that you have saved while creating your validator keys)

\- Validator start index (Usually it is 0 for all of our users)

\- An Ethereum Wallet address (it can be the same address that you have used for your execution layer returns or it can be any Ethereum address which you have access/ownership)

#### Output

\- bls\_to\_execution\_change.json file

\- file.txt, which contains the withdrawal addresses
