Skip to content
You are reading Hyperledger Besu development version documentation and some displayed features may not be available in the stable release. You can switch to stable version using the version box at screen bottom.
Date of last update: September 12, 2022

Use the Hyperledger Besu configuration file

To specify command line options in a file, use a TOML configuration file.

Save the configuration file and reuse it across node startups. To specify the configuration file, use the --config-file option.

To override an option specified in the configuration file, either specify the same option on the command line or as an environment variable. For options specified in more than one place, the order of precedence is command line, environment variable, configuration file.


The configuration file is used for node-level settings. You can specify network-wide settings in the genesis file.

TOML specification

The configuration file must be a valid TOML file composed of key/value pairs. Each key is the same as the corresponding command line option name without the leading dashes (--).

Values must conform to TOML specifications for string, numbers, arrays, and booleans. Specific differences between the command line and the TOML file format are:

  • Comma-separated lists on the command line are string arrays in the TOML file.
  • Enclose file paths, hexadecimal numbers, URLs, and <host:port> values in quotes.


The command line reference includes configuration file examples for each option.

Sample TOML configuration file

# Valid TOML config file
data-path="~/besudata" # Path

# Network
bootnodes=["enode://001@123:4567", "enode://002@123:4567", "enode://003@123:4567"]




# Chain
genesis-file="~/genesis.json" # Path to the custom genesis file

# Mining

Starting Besu with a configuration file

besu --config-file=/home/me/me_node/config.toml