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.
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.
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:
The core configuration is divided into several functional areas:
| 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 |
| Configuration Option | Description | Default |
|---|---|---|
ecdsa_private_key | ECDSA private key for transaction signing | Required |
jwt_secret | Secret for JWT token generation and validation | Required |
| Configuration Option | Description | Default |
|---|---|---|
db_path | Path to the BadgerDB database files | Required |
backup_dir | Directory for database backups | /tmp/ap-avs-backup |
| 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 |
| 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 |
| 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 |
| Configuration Option | Description | Default |
|---|---|---|
environment | Logging level and environment mode | Required |
Sources:
The following diagram illustrates the configuration loading process:
Sources:
The system supports different environments through configuration settings:
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:
For production environments, additional security considerations are important:
For containerized deployments, configuration can be provided through:
The official Docker image is built with:
Sources:
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 |
The configuration is validated upon loading to ensure all required fields are provided:
Sources:
The Ava Protocol team manages the aggregator service, which operators connect to. The aggregator addresses depend on the network:
| Network | RPC Address |
|---|---|
| Sepolia Testnet | aggregator-sepolia.avaprotocol.org:2206 |
| Mainnet | aggregator.avaprotocol.org:2206 |
Sources:
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:
Below is an example configuration file for an operator:
Sources:
Feature this wiki to auto refresh weekly