Skip to main content

Start Operator

Setup Checklist tick

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. Choose the format matching your installation method:

./operator start \
--vault= \
--consensus-endpoints= \
--execution-endpoints=

Optional Flags

FlagDescription
--data-dirPath where keystores and config data are placed. Required for Docker (--data-dir=/data). Default: ~/.stakewise
--database-dirDirectory where the database is created or read from. Must already exist; map it to a host directory or Docker volume. Default: the Vault's data directory
--graph-endpointAPI endpoint for the StakeWise subgraph node
--execution-jwt-secretJWT secret used to authenticate against the execution node
--keystores-dirDirectory 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-filePath to the password file for decrypting keystores
--wallet-filePath to the wallet file. Default: file generated by create-wallet
--wallet-password-filePath to the wallet password file. Default: file generated by create-wallet
--harvest-vaultKeeps your Vault synced by calling updateState every 12 hours, reducing gas costs for users. The Vault state is also updated whenever users interact with it (deposits, withdrawals, etc.)
--claim-fee-splitterPeriodically claims fees to shareholder addresses. See Fee Claiming
--run-nodesStarts and manages local Reth (execution), Lighthouse (consensus), and validator nodes alongside the Operator Service. Requires node-install first. See Automated Node Setup
--validator-typeRegister 0x01 instead of default 0x02 validators
--min-deposit-amount-gweiMinimum Vault balance to trigger registration or top-up. Minimum allowed: 1 ETH/GNO. Default: 10 ETH/GNO
--vault-min-balance-gweiETH to keep in the Vault and not stake. Default: 0
--max-validator-balance-gweiMaximum validator balance for top-ups. Default: 300 ETH (Ethereum), 1800 GNO (Gnosis). The protocol ceiling is higher (2048 ETH), but the service stops topping up at this value
--min-deposit-delayMinimum delay between registration or top-up transactions. Default: 3600 seconds (1 hour)
--max-withdrawal-request-fee-gweiMaximum fee per withdrawal request. Default: 1000 Gwei
--disable-withdrawalsDisables submitting partial and full withdrawals. This reduces gas costs but increases withdrawal times for users. Oracles will instead handle exits using signatures from registration
--max-fee-per-gas-gweiMaximum gas fee per transaction. Default: 10 Gwei (Ethereum), 2 Gwei (Gnosis)
--concurrencyNumber of processes in a pool. For optimal performance, set to half your CPU cores (e.g., --concurrency=4 for 8-core systems) to prevent overloading during keystore operations
--disable-validators-registrationDisables registering new validators
--disable-validators-fundingDisables topping up existing 0x02 validators
-v, --verboseEnable debug mode, prints full output on error
--log-levelSet logging level: ERROR, WARNING, INFO, DEBUG. Default: INFO
--log-formatLog record format: plain or json. Default: plain

Every flag above can also be supplied as an environment variable — --max-fee-per-gas-gwei as MAX_FEE_PER_GAS_GWEI, and so on.

Advanced Environment Variables

Beyond the flags above, the Operator Service reads a set of advanced environment variables for fine tuning — IPFS gateways, event-fetching batch sizes, Sentry reporting, and more. They have no CLI equivalent. Run ./operator env-vars for the current list, or ./operator env-vars --format=markdown to get it as a table.