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:

ComponentDefault Configuration PathPurpose
Operatorconfig/operator.yamlConfiguration for operator nodes
AggregatorVariableConfiguration 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 OptionDescriptionDefault
eth_rpc_urlEthereum HTTP RPC URL for blockchain interactionsRequired
eth_ws_urlEthereum WebSocket RPC URL for event subscriptionsRequired
rpc_bind_addressAddress to bind the RPC serverRequired
socket_pathUnix socket path for inter-process communication/tmp/ap.sock

Authentication and Keys#

Configuration OptionDescriptionDefault
ecdsa_private_keyECDSA private key for transaction signingRequired
jwt_secretSecret for JWT token generation and validationRequired

Storage and Database#

Configuration OptionDescriptionDefault
db_pathPath to the BadgerDB database filesRequired
backup_dirDirectory for database backups/tmp/ap-avs-backup

Smart Wallet (Account Abstraction)#

Configuration OptionDescriptionDefault
smart_wallet.eth_rpc_urlEthereum RPC URL for smart wallet operationsRequired
smart_wallet.eth_ws_urlEthereum WebSocket URL for smart wallet eventsRequired
smart_wallet.bundler_urlURL of the ERC-4337 bundler serviceRequired
smart_wallet.factory_addressAddress of the wallet factory contractRequired
smart_wallet.entrypoint_addressAddress of the ERC-4337 entrypoint contractRequired
smart_wallet.controller_private_keyPrivate key for controlling the smart walletRequired
smart_wallet.paymaster_addressAddress of the paymaster contract (optional)Optional

Backup Configuration#

Configuration OptionDescriptionDefault
backup.enabledEnable periodic database backupsfalse
backup.interval_minutesInterval between backups in minutesRequired if enabled
backup.backup_dirDirectory to store backupsUses main backup_dir if empty

EigenLayer AVS Integration#

Configuration OptionDescriptionDefault
operator_state_retriever_addressAddress of the OperatorStateRetriever contractRequired
avs_registry_coordinator_addressAddress of the AVS Registry Coordinator contractRequired

Environment and Logging#

Configuration OptionDescriptionDefault
environmentLogging level and environment modeRequired

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:

CommandDescription
make dev-buildBuild a development version of the application
make dev-aggRun the aggregator with the development build
make dev-opRun the operator with the development configuration

Sources:

Production/Deployment Configuration#

For production environments, additional security considerations are important:

  1. Store private keys securely
  2. Use TLS/SSL for RPC connections
  3. Configure proper backup settings
  4. Set appropriate logging levels

Docker Environment Configuration#

For containerized deployments, configuration can be provided through:

  1. Mounted configuration files
  2. Environment variables
  3. 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:

ConfigurationDefault ValueSource
socket_path/tmp/ap.sockcore/config/config.go243-245
backup_dir/tmp/ap-avs-backupcore/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:

NetworkRPC AddressExplorer URL
Holesky Testnetaggregator-holesky.avaprotocol.org:2206https://api-explorer-holesky.avaprotocol.org/
Mainnetaggregator.avaprotocol.org:2206https://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