Overview
SSV uses Shamir Secret Sharing (SSS) to split a validator’s BLS private key into multiple shares distributed across SSV operators. This enables distributed validation without any single operator holding the complete key.Key Concepts
- Validator Key: The original BLS private key for an Ethereum validator
- Key Shares: Split portions of the validator key distributed to operators
- Threshold: The minimum number of operators needed to perform duties (typically 3 of 4)
- Cluster: The group of operators managing a validator
Prerequisites
- SSV node running and synced (see Running a Node)
- Registered operator on SSV network
- Validator keystore or mnemonic
- ssv-keys tool installed
Installing ssv-keys
Download the latest release from ssv-keys releases:Extracting Validator Keys
If you only have a mnemonic, extract the validator keys first.From Mnemonic
Supported Networks
Specify the network when extracting keys:Splitting Validator Keys
Using ssvnode CLI
For testing and development, you can use the built-in threshold command:The
create-threshold command is for testing only. For production, use the ssv-keys tool which generates properly formatted shares for the SSV network.Using ssv-keys (Production)
For production validator registration:Gather operator information
You’ll need:
- Operator IDs (e.g.,
1,2,3,4) - Operator public keys (base64-encoded RSA keys)
- Owner address (Ethereum address)
- Nonce (incremental counter for each validator)
keyshares.json
Registering Validators
After generating key shares:- Register on SSV Network: Use the SSV web app or contract to register the validator with the generated
sharesData - Automatic Sync: Your SSV node automatically detects the registration via contract events
- Start Duties: The node begins performing validator duties with its share
Verifying Registration
Check if your node detected the validator:Managing Validators
Viewing Active Validators
List validators managed by your operator:Removing Validators
To stop managing a validator:- Remove the validator through the SSV web app or contract
- Your node automatically processes the
ValidatorRemovedevent - The node stops performing duties for that validator
Cluster Management
Cluster Liquidation: When a cluster runs out of SSV tokens for fees:Validator Exits
To voluntarily exit a validator from the beacon chain:- Initiate exit through SSV web app
- SSV operators collaboratively sign the exit message
- Exit message is submitted to beacon chain
Fee Recipient Configuration
Set the address to receive MEV and priority fees:Monitoring Validator Performance
Metrics to Track
- Attestation Performance: % of attestations submitted on time
- Proposal Success: Block proposals completed
- Sync Committee: Sync committee message success rate
- Penalties: Missed duties and associated penalties
Using the Exporter API
Enable the exporter for detailed duty tracking:config.yaml
Troubleshooting
Validator Not Performing Duties
-
Check registration:
-
Verify cluster is active:
- Check cluster balance in SSV web app
- Ensure not liquidated
-
Check operator status:
-
Review logs:
“Missing keys” Error
If using remote signer (ssv-signer):Shares Decryption Failed
- Verify you’re using the correct operator private key
- If operator key changed, validators must be re-registered with new shares
Advanced Configuration
Doppelganger Protection
Prevent running duplicate validators:config.yaml
When enabled, validators wait 2 epochs before starting duties to detect any existing active instances.
Full Node vs Light Node
By default, nodes run in “light” mode (only managing their own validators). For full network participation:config.yaml
- Store data for all validators in the network
- Require significantly more storage
- Help network decentralization
Best Practices
- Test on testnets first - Validate your setup on Holesky before mainnet
- Backup key shares - Store encrypted backups of generated keyshares
- Monitor continuously - Set up alerts for missed duties
- Keep sufficient cluster balance - Avoid liquidation by maintaining SSV token balance
- Choose reliable operators - Select operators with high performance history
- Gradual scaling - Start with a few validators before scaling up
- Document your setup - Keep records of operator IDs, nonces, and configurations
