Start Operator
Setup Checklist
Before starting the Operator Service, confirm that everything is in place:
Start Operator Service
Run the Operator Service using the start command with your Vault address and node endpoints.
By default, the Operator Service runs with locally stored keystores created during key creation. For alternative key management methods (Remote Signer, HashiCorp Vault, API Mode), see the Alternative Key Management → section.
Choose the format matching your installation method:
- Binary
- Docker
- Source Files
./operator start \
--vault=0x834F27bC8670491b75af512d943f01D5383F87Cf \
--consensus-endpoints=https://consensus-node \
--execution-endpoints=https://execution-node
For Docker, you first need to mount the folder containing validator keystores and include the --data-dir flag alongside the start command:
docker run --restart on-failure:10 \
-u $(id -u):$(id -g) \
-v ~/.stakewise/:/data \
europe-west4-docker.pkg.dev/stakewiselabs/public/v3-operator:v4.1.10 \
src/main.py start \
--vault=0x834F27bC8670491b75af512d943f01D5383F87Cf \
--data-dir=/data \
--consensus-endpoints=http://localhost:5052 \
--execution-endpoints=http://localhost:8545
PYTHONPATH=. poetry run python src/main.py start \
--vault=0x834F27bC8670491b75af512d943f01D5383F87Cf \
--consensus-endpoints=http://localhost:5052 \
--execution-endpoints=http://localhost:8545
The examples above use the start command, which runs the Operator Service with local keystores. For other modes, see Alternative Key Management → (start-remote-signer, start-hashi-vault, start-relayer).
Optional Flags
Keystore & Wallet
Only needed if you didn't use the Operator Service to generate keys and wallet.
| Flag | Description |
|---|---|
--keystores-dir | Directory with validator keys in EIP-2335 ↗ format. Must contain a single password.txt or per-keystore password files (e.g., keystore1.json, keystore1.txt) |
--keystores-password-file | Path to the password file for decrypting keystores |
--wallet-file | Path to the wallet file. Default: file generated by create-wallet |
--wallet-password-file | Path to the wallet password file. Default: file generated by create-wallet |
Additional Capabilities
| Flag | Description |
|---|---|
--harvest-vault | Syncs Vault state every 12 hours via updateState, reducing gas costs for users |
--claim-fee-splitter | Periodically claims fees to shareholder addresses. See Fee Claiming → |
--run-nodes | Starts and manages local Reth and Lighthouse nodes. Requires node-install first. See Automated Node Setup → |
Tuning & Limits
| Flag | Description |
|---|---|
--min-deposit-amount-gwei | Minimum Vault balance to trigger registration or top-up. Default: 10 ETH |
--vault-min-balance-gwei | ETH to keep in the Vault and not stake. Default: 0 |
--max-validator-balance-gwei | Maximum validator balance for top-ups. Default: 1945 ETH (Ethereum), 1800 GNO (Gnosis) |
--max-withdrawal-request-fee-gwei | Maximum fee per withdrawal request. Default: 1000 Gwei |
--min-deposit-delay | Minimum delay between registration transactions. Default: 1 hour |
--max-fee-per-gas-gwei | Maximum gas fee per transaction. Default: 10 Gwei (Ethereum), 2 Gwei (Gnosis) |
--validator-type | Register 0x01 instead of default 0x02 validators |
--concurrency | Number of processes in a pool. For optimal performance, set it to half your CPU cores (e.g., --concurrency=4 for 8-core systems) to prevent overloading during keystore operations |
Disable Functions
| Flag | Description |
|---|---|
--disable-validators-registration | Disables registering new validators |
--disable-validators-funding | Disables topping up existing 0x02 validators |
--disable-withdrawals | Disables submitting withdrawals. Oracles will handle exits using signatures from registration |
Logging
| Flag | Description |
|---|---|
--verbose | Enable debug mode |
--log-level | Set logging level: ERROR, WARNING, INFO, DEBUG |
Monitor the logs to confirm the Operator Service is running and validators are being registered successfully.