Skip to main content

Prepare Operator

After installing the Operator Service, you need to generate validator keystores for your Vault. These keystores contain the cryptographic keys that your validators will use to sign attestations and propose blocks on the Ethereum network.

You will also need to create and upload a deposit data file to connect your node to the Vault, and set up a hot wallet for the Operator Service to handle validator registrations.

The Operator Service provides built-in functionality to generate all of the above. Alternatively, you may use external tools such as Wagyu Keygen ↗ to generate keystores, and existing wallets like MetaMask ↗ or MyEtherWallet ↗ for the Operator wallet.

This section walks you through the validator key generation process using the Operator Service built-in tools.

🤖 Prepare Operator

📝 Initialize Mnemonic ↓ 🔐 Generate Validator Keys → 📁 Keystores + 📄 Deposit Data File ↓ ✅ Import Keys to Consensus Client ↓ 💼 Create Hot Wallet ↓ 📤 Upload Deposit Data File to Vault ↓ 🚀 Run Operator Service

Step 1: Initialize Mnemonic

IconInitialize Configuration

Run the init command to set up your mnemonic used to derive your validator keys.

For example, if running Operator Service from binary:

./operator init

Follow the command prompts.

Example Output
Enter the network name (mainnet, hoodi, gnosis, chiado) [mainnet]: hoodi
Enter your vault address: 0xf27...10ad9
Choose your mnemonic language (chinese_simplified, chinese_traditional, czech, english, italian, korean, portuguese, spanish) [english]: english

This is your seed phrase. Write it down and store it safely, it is the ONLY way to recover your validator keys.

where town man expand behind ...

Press any key when you have written down your mnemonic.

Please type your mnemonic (separated by spaces) to confirm you have written it down

: where town man expand behind ...

done.
Successfully initialized configuration for vault 0xf27...10ad9
IconImportant Security Notice

Keep your mnemonic safe. It is the only way to recover your validator keys.

Step 2: Generate Validator Keys

Generate validator keystores from your mnemonic using:

./operator create-keys

Follow the command prompts.

Example Output
Enter the vault address: 0xf27...10ad9
Enter the number of the validator keys to generate: 3
Enter the mnemonic for generating the validator keys: where town man expand behind ...
Creating validator keys: [####################################] 3/3
Generating deposit data JSON [####################################] 3/3
Exporting validator keystores [####################################] 3/3
Done. Generated 3 keys for 0xf27...10ad9 vault.
Keystores saved to /Users/user/.stakewise/0xf27...10ad9/keystores file
Deposit data saved to /Users/user/.stakewise/0xf27...10ad9/deposit_data.json file

This command generates the following files in your Vault directory (~/.stakewise/[vault address]/):

  1. config.json - Configuration file for your Vault.
  2. deposit_data.json - Contains validator registration information including public keys, withdrawal credentials, and cryptographic signatures. This file must be uploaded to your Vault (Step 5: Upload Deposit Data File →) to authorize the Operator Service to register your validators.
  3. keystores/ directory containing: validator keystores and password.txt for all generated keystores.
IconNote
  • Per-keystore option: Use the --per-keystore-password flag to generate individual password files for each keystore (e.g., keystore-001.txt, keystore-002.txt, etc.)
IconImportant

Protect your password files as carefully as your keystores — anyone with access to them can decrypt your keys. This applies to both the single password.txt file and individual per-keystore password files.

Add Validator Keys to Vault

You can always add more validator keys to your Vault:

  1. Generate new validator keys and deposit data as described in the step above
  2. Upload the deposit data file to your Vault as described in Step 5: Upload Deposit Data File →
IconImportant

Uploading a new deposit data file will overwrite the existing file and consequently overwrite previously unused validator keys. This can be done at any point, but only by the Vault Admin or Keys Manager.

Alternative Key Management

Validator keystores don't need to be stored locally. You can instead use:

Step 3: Import Validator Keys

Upload your keystores into your validator client:

  1. Locate your keystores in ~/.stakewise/[vault address]/keystores
  2. Follow your consensus client's guide for importing keys
  3. Use the password from password.txt file
  4. Start the validator client with attached validator keys.

Step 4: Create Hot Wallet

Run the create-wallet command to create your hot wallet using your mnemonic.

IconNote

This mnemonic can be the same as the one used to generate the validator keys, or a new mnemonic if you desire.

./operator create-wallet
Example Output
Enter the vault address: 0xf27...10ad9
Enter the mnemonic for generating the wallet: where town man expand behind ...
Done. The wallet and password saved to /Users/user/.stakewise/0xf27...10ad9/wallet directory. The wallet address is: 0x9A739D3...E4921685
IconWallet Balance Warning

Fund your wallet with ETH (or xDAI on Gnosis) to cover gas:

  • Each validator registration costs ~0.01 ETH at 30 Gwei gas price
  • Check current gas prices at Etherscan Gas Tracker ↗
  • Monitor balance regularly to prevent registration failures

Step 5: Upload Deposit Data File to Vault

Once you have created your validator keys, deposit data file, and hot wallet, you need to upload the deposit data file to the Vault to allow the Operator Service to register validators on your behalf.

IconMultiple Operators

If your Vault has multiple node operators, you must first merge all operator deposit data files into a single file using the merge-deposit-data command before uploading.

The deposit data file can be uploaded through the StakeWise UI or via the Operator Service. Only the Vault Admin or Keys Manager can perform this action.

  1. Connect your wallet and navigate to the Operate page ↗
  2. Select your Vault from the list
  3. Click Settings in the upper right corner and open the Deposit Data tab
  4. Upload your deposit data file by dragging and dropping it, or clicking to browse your files
  5. Click Save and confirm the transaction in your wallet

The deposit data file will be uploaded once the transaction is confirmed on the network.

Next Steps

🎉 Your Operator Service is now set up! Continue to Start Operator → to launch your Operator Service.