config/config.yaml.
Configuration File Location
The default configuration file location is specified when starting the node:Complete Configuration Reference
Global Settings
General settings that affect the entire node operation.Log verbosity level. Options:
debug- Detailed debugging information (verbose)info- General informational messages (recommended)warn- Warning messages onlyerror- Error messages onlyfatal- Fatal errors that cause shutdownpanic- Panic-level errors
File path where debug logs are written. Logs are appended to this file.
Database Configuration
Settings for the node’s persistent storage.Directory path for storing the BadgerDB database. This contains:
- Validator shares and metadata
- Operator information
- Network state
The database uses BadgerDB for efficient key-value storage with SSZ encoding.
SSV Network
Configure which SSV network to join.The SSV network to connect to:
mainnet- Production network on Ethereum mainnetholesky- Testnet network on Holesky testnet
Ethereum Beacon Node (ETH2)
Configuration for connecting to the Ethereum consensus layer.HTTP or HTTPS URL of your Ethereum Beacon node. The node uses this to:
- Fetch validator duties
- Submit attestations and proposals
- Monitor chain state
Advanced validator configuration options. See beacon client documentation for available options.
Ethereum Execution Node (ETH1)
Configuration for connecting to the Ethereum execution layer.WebSocket URL of your Ethereum execution node. Used to:
- Monitor SSV smart contract events
- Sync operator and validator registrations
- Track network state changes
ws:// or wss://) for event subscriptions.P2P Network Configuration
Peer-to-peer networking settings.External IP address of your node.
- Auto-detected if not specified
- Must be set manually if behind NAT or using non-standard networking
- Required for proper peer discovery
TCP port for P2P communication. Must be publicly accessible for incoming connections.
UDP port for P2P discovery (discv5 protocol). Must be publicly accessible for peer discovery.
Discovery mechanism. Options:
- Not set (default) - Uses discv5 for production
mdns- Multicast DNS for local development networks
Operator Keys
Configure your operator’s private key. Choose one method only.- Encrypted Keystore (Recommended)
- Raw Private Key (Not Recommended)
Converting Existing Keys
Convert a raw private key to encrypted keystore:MEV Configuration (Optional)
Advanced settings for MEV (Maximal Extractable Value) optimization.Time delay before requesting block proposals. This allows MEV relays more time to build higher-value blocks.
- Default:
0(no delay) - Recommended starting value:
300ms - Maximum safe value:
1000ms(1 second)
docs/MEV_CONSIDERATIONS.md in the source repository for detailed information.Safety flag that must be set to
true to allow ProposerDelay values above 1 second.Monitoring & Metrics
Enable monitoring interfaces for observability.Port for Prometheus-compatible metrics endpoint.Access metrics at:
http://localhost:15000/metricsProvides metrics for:- Validator performance
- P2P connectivity
- Beacon node status
- Consensus participation
Enable OpenTelemetry distributed tracing for debugging.
Port for SSV REST API. Documentation at ssvlabs.github.io/ssv
Local Development
Settings for running local development networks.Path to events YAML file for simulating contract events in local development.Use with local 4-node networks to simulate validator registration without actual blockchain events.
Local Development Setup
Local Development Setup
For local testing with multiple nodes:Generate local configuration:Then run:
Example Configurations
Share Configuration
For multi-operator setups, you can use separate share configuration files:config/example_share.yaml):
Configuration Validation
Validate your configuration before starting:Environment Variables
Some settings can be overridden via environment variables (when using Docker):Security Best Practices
Protect sensitive files
Protect sensitive files
Set appropriate file permissions:
Firewall configuration
Firewall configuration
Only expose necessary ports:
Backup configuration
Backup configuration
Regularly backup your configuration and keystore:Store backups securely offline.
Source Files
Configuration examples are available in the source repository:/config/config.example.yaml- Main configuration example/config/example_share.yaml- Share configuration template/config/events.example.yaml- Local events example
