Configuration
This page documents the configuration options for the EigenLayer-AVS system, including configuration file structure, environment variables, and runtime options.
This page documents the configuration options for the EigenLayer-AVS system, including configuration file structure, environment variables, and runtime options. The configuration system allows operators and aggregators to specify network connections, credentials, storage locations, and other operational parameters.
For information about deploying the system, see Development and Deployment.
Configuration Overview#
The EigenLayer-AVS system uses YAML configuration files for both operators and aggregators. Configuration values can also be provided through environment variables for containerized deployments.
Configuration Files#
The main configuration files used in the system are:
Component | Default Configuration Path | Purpose |
---|---|---|
Operator | config/operator.yaml | Configuration for operator nodes |
Aggregator | Variable | Configuration for the aggregator service |
The configuration system loads and parses these YAML files, validating required parameters before starting the services.
Sources:
Core Configuration Options#
The core configuration is divided into several functional areas:
Network and Connectivity#
Configuration Option | Description | Default |
---|---|---|
eth_rpc_url | Ethereum HTTP RPC URL for blockchain interactions | Required |
eth_ws_url | Ethereum WebSocket RPC URL for event subscriptions | Required |
rpc_bind_address | Address to bind the RPC server | Required |
socket_path | Unix socket path for inter-process communication | /tmp/ap.sock |
Authentication and Keys#
Configuration Option | Description | Default |
---|---|---|
ecdsa_private_key | ECDSA private key for transaction signing | Required |
jwt_secret | Secret for JWT token generation and validation | Required |
Storage and Database#
Configuration Option | Description | Default |
---|---|---|
db_path | Path to the BadgerDB database files | Required |
backup_dir | Directory for database backups | /tmp/ap-avs-backup |
Smart Wallet (Account Abstraction)#
Configuration Option | Description | Default |
---|---|---|
smart_wallet.eth_rpc_url | Ethereum RPC URL for smart wallet operations | Required |
smart_wallet.eth_ws_url | Ethereum WebSocket URL for smart wallet events | Required |
smart_wallet.bundler_url | URL of the ERC-4337 bundler service | Required |
smart_wallet.factory_address | Address of the wallet factory contract | Required |
smart_wallet.entrypoint_address | Address of the ERC-4337 entrypoint contract | Required |
smart_wallet.controller_private_key | Private key for controlling the smart wallet | Required |
smart_wallet.paymaster_address | Address of the paymaster contract (optional) | Optional |
Backup Configuration#
Configuration Option | Description | Default |
---|---|---|
backup.enabled | Enable periodic database backups | false |
backup.interval_minutes | Interval between backups in minutes | Required if enabled |
backup.backup_dir | Directory to store backups | Uses main backup_dir if empty |
EigenLayer AVS Integration#
Configuration Option | Description | Default |
---|---|---|
operator_state_retriever_address | Address of the OperatorStateRetriever contract | Required |
avs_registry_coordinator_address | Address of the AVS Registry Coordinator contract | Required |
Environment and Logging#
Configuration Option | Description | Default |
---|---|---|
environment | Logging level and environment mode | Required |
Sources:
Configuration Loading Process#
The following diagram illustrates the configuration loading process:
Sources:
Environment-Specific Configuration#
The system supports different environments through configuration settings:
Development Configuration#
For local development, a convenience configuration is available:
Development-specific commands are available in the Makefile:
Command | Description |
---|---|
make dev-build | Build a development version of the application |
make dev-agg | Run the aggregator with the development build |
make dev-op | Run the operator with the development configuration |
Sources:
Production/Deployment Configuration#
For production environments, additional security considerations are important:
- Store private keys securely
- Use TLS/SSL for RPC connections
- Configure proper backup settings
- Set appropriate logging levels
Docker Environment Configuration#
For containerized deployments, configuration can be provided through:
- Mounted configuration files
- Environment variables
- Docker secrets
The official Docker image is built with:
Sources:
Configuration Management#
Default Configuration Values#
When certain configuration values are not provided, the system uses defaults:
Configuration | Default Value | Source |
---|---|---|
socket_path | /tmp/ap.sock | core/config/config.go243-245 |
backup_dir | /tmp/ap-avs-backup | core/config/config.go196-200 |
Configuration Validation#
The configuration is validated upon loading to ensure all required fields are provided:
Sources:
Aggregator Addresses#
The Ava Protocol team manages the aggregator service, which operators connect to. The aggregator addresses depend on the network:
Network | RPC Address | Explorer URL |
---|---|---|
Holesky Testnet | aggregator-holesky.avaprotocol.org:2206 | https://api-explorer-holesky.avaprotocol.org/ |
Mainnet | aggregator.avaprotocol.org:2206 | https://api-explorer.avaprotocol.org/ |
Sources:
Macros Configuration#
The configuration system supports macros for variables and secrets that can be used in tasks:
These macros are accessible in the configuration through MacroVars
and MacroSecrets
maps.
Sources:
Example Configuration File#
Below is an example configuration file for an operator:
Sources:
Feature this wiki to auto refresh weekly