Skip to main content
Version: 1.29.0

Configuration

Nethermind is highly configurable. There are 3 ways of configuring it, listed by priority:

note

Given the above priority list, an option defined in a more priority way overrides the same option defined elsewhere if any.

The full list of configuration options can be displayed by running:

nethermind -h

Below is the list of the basic command line options followed by an exhaustive list of configuration options by namespace.

warning

The configuration options are case-sensitive and can be defined only once unless stated otherwise.

Basic command line options

  • -d, --baseDbPath <path>

    The path to the Nethermind database directory. Defaults to db.

  • -c, --config <value>

    The path to the configuration file or the name (without extension) of any of the configuration files in the configuration directory. Defaults to mainnet.

    Available configurations

    Nethermind provides the following pre-built configurations named as the networks they are for. Their respective versions for archive nodes are suffixed _archive.

    • base-mainnet base-mainnet_archive
    • base-sepolia base-sepolia_archive
    • chiado chiado_archive
    • energyweb energyweb_archive
    • gnosis gnosis_archive
    • holesky holesky_archive
    • mainnet mainnet_archive
    • op-mainnet op-mainnet_archive
    • op-sepolia op-sepolia_archive
    • sepolia sepolia_archive
    • volta volta_archive

  • -cd, --configsDirectory <path>

    The path to the configuration files directory. Defaults to configs.

  • -dd, --datadir <path>

    The path to the Nethermind data directory. Defaults to Nethermind's current directory.

    warning

    The absolute paths set by Init.BaseDbPath, Init.LogDirectory, or KeyStore.KeyStoreDirectory options in a configuration file are not overridden by --datadir.

  • -?, -h, --help

    Displays the full list of available command line options.

  • -l, --log <level>

    Log level (severity). Allowed values: TRACE DEBUG INFO WARN ERROR OFF. Defaults to INFO.

  • -lcs, --loggerConfigSource <path>

    The path to the NLog configuration file. Defaults to NLog.config.

  • -pd, --pluginsDirectory <path>

    The path to the Nethermind plugins directory. Defaults to plugins.

  • -v, --version

    Displays the Nethermind version info.

Options by namespaces

Aura

  • Aura.AllowAuRaPrivateChains

    --Aura.AllowAuRaPrivateChains <value>

    Whether to allow private Aura-based chains only. Do not use with existing Aura-based chains. Allowed values: true false. Defaults to false.

  • Aura.ForceSealing

    --Aura.ForceSealing <value>

    Whether to seal empty blocks if mining. Allowed values: true false. Defaults to true.

  • Aura.Minimum2MlnGasPerBlockWhenUsingBlockGasLimitContract

    --Aura.Minimum2MlnGasPerBlockWhenUsingBlockGasLimitContract <value>

    Whether to use 2M gas if the contract returns less than that when using BlockGasLimitContractTransitions. Allowed values: true false. Defaults to false.

  • Aura.TxPriorityConfigFilePath

    --Aura.TxPriorityConfigFilePath <value>

    The path to the transaction priority rules file to use when selecting transactions from the transaction pool. Defaults to null.

  • Aura.TxPriorityContractAddress

    --Aura.TxPriorityContractAddress <value>

    The address of the transaction priority contract to use when selecting transactions from the transaction pool. Defaults to null.

Blocks

  • Blocks.BlockProductionTimeoutMs

    --Blocks.BlockProductionTimeoutMs <value>

    Block Production timeout, in milliseconds. Defaults to 4000.

  • Blocks.ExtraData

    --Blocks.ExtraData <value>

    The block header extra data up to 32 bytes in length. Defaults to Nethermind.

  • Blocks.GenesisTimeoutMs

    --Blocks.GenesisTimeoutMs <value>

    Genesis block load timeout, in milliseconds. Defaults to 40000.

  • Blocks.MinGasPrice

    --Blocks.MinGasPrice <value>

    The minimum gas premium (or the gas price before the London hard fork) for transactions accepted by the block producer. Defaults to 1.

  • Blocks.PreWarmStateOnBlockProcessing

    --Blocks.PreWarmStateOnBlockProcessing <value>

    Whether to pre-warm the state when processing blocks. This can lead to an up to 2x speed-up in the main loop block processing. Allowed values: true false. Defaults to True.

  • Blocks.RandomizedBlocks

    --Blocks.RandomizedBlocks <value>

    Whether to change the difficulty of the block randomly within the constraints. Used in NethDev only. Allowed values: true false. Defaults to false.

  • Blocks.SecondsPerSlot

    --Blocks.SecondsPerSlot <value>

    The block time slot, in seconds. Defaults to 12.

  • Blocks.TargetBlockGasLimit

    --Blocks.TargetBlockGasLimit <value>

    The block gas limit that the block producer should try to reach in the fastest possible way based on the protocol rules. If not specified, then the block producer should follow others. Defaults to null.

Bloom

  • Bloom.Index

    --Bloom.Index <value>

    Whether to use the Bloom index. The Bloom index speeds up the RPC log searches. Allowed values: true false. Defaults to true.

  • Bloom.IndexLevelBucketSizes

    --Bloom.IndexLevelBucketSizes <value>

    An array of multipliers for index levels. Can be tweaked per chain to boost performance. Defaults to [4, 8, 8].

  • Bloom.Migration

    --Bloom.Migration <value>

    Whether to migrate the previously downloaded blocks to the Bloom index. Allowed values: true false. Defaults to false.

  • Bloom.MigrationStatistics

    --Bloom.MigrationStatistics <value>

    Whether the migration statistics should be calculated and output. Allowed values: true false. Defaults to false.

CensorshipDetector

  • CensorshipDetector.AddressesForCensorshipDetection

    --CensorshipDetector.AddressesForCensorshipDetection <value>

    The addresses for which censorship is being detected. Defaults to null.

  • CensorshipDetector.BlockCensorshipThreshold

    --CensorshipDetector.BlockCensorshipThreshold <value>

    Number of consecutive blocks with detected potential censorship to report censorship attempt Defaults to 2.

  • CensorshipDetector.Enabled

    --CensorshipDetector.Enabled <value>

    Enabling censorship detection feature Allowed values: true false. Defaults to true.

EthStats

  • EthStats.Contact

    --EthStats.Contact <value>

    The node owner contact details displayed on Ethstats. Defaults to hello@nethermind.io.

  • EthStats.Enabled

    --EthStats.Enabled <value>

    Whether to use Ethstats publishing. Allowed values: true false. Defaults to false.

  • EthStats.Name

    --EthStats.Name <value>

    The node name displayed on Ethstats. Defaults to Nethermind.

  • EthStats.Secret

    --EthStats.Secret <value>

    The Ethstats secret. Defaults to secret.

  • EthStats.SendInterval

    --EthStats.SendInterval <value>

    The stats update interval, in seconds. Defaults to 15.

  • EthStats.Server

    --EthStats.Server <value>

    The Ethstats server URL. Defaults to ws://localhost:3000/api.

HealthChecks

  • HealthChecks.Enabled

    --HealthChecks.Enabled <value>

    Whether to enable the health check. Allowed values: true false. Defaults to false.

  • HealthChecks.LowStorageCheckAwaitOnStartup

    --HealthChecks.LowStorageCheckAwaitOnStartup <value>

    Whether to check for low disk space on startup and suspend until enough space is available. Allowed values: true false. Defaults to false.

  • HealthChecks.LowStorageSpaceShutdownThreshold

    --HealthChecks.LowStorageSpaceShutdownThreshold <value>

    The percentage of available disk space below which Nethermind shuts down. 0 to disable. Defaults to 1.

  • HealthChecks.LowStorageSpaceWarningThreshold

    --HealthChecks.LowStorageSpaceWarningThreshold <value>

    The percentage of available disk space below which a warning is displayed. 0 to disable. Defaults to 5.

  • HealthChecks.MaxIntervalClRequestTime

    --HealthChecks.MaxIntervalClRequestTime <value>

    The max request interval, in seconds, in which the consensus client is assumed healthy. Defaults to 300.

  • HealthChecks.MaxIntervalWithoutProcessedBlock

    --HealthChecks.MaxIntervalWithoutProcessedBlock <value>

    The max interval, in seconds, in which the block processing is assumed healthy. Defaults to null.

  • HealthChecks.MaxIntervalWithoutProducedBlock

    --HealthChecks.MaxIntervalWithoutProducedBlock <value>

    The max interval, in seconds, in which the block production is assumed healthy. Defaults to null.

  • HealthChecks.PollingInterval

    --HealthChecks.PollingInterval <value>

    The health check updates polling interval, in seconds. Defaults to 5.

  • HealthChecks.Slug

    --HealthChecks.Slug <value>

    The URL slug the health checks service is exposed at. Defaults to /health.

  • HealthChecks.UIEnabled

    --HealthChecks.UIEnabled <value>

    Whether to enable the health checks UI. Allowed values: true false. Defaults to false.

  • HealthChecks.WebhooksEnabled

    --HealthChecks.WebhooksEnabled <value>

    Whether to enable web hooks. Allowed values: true false. Defaults to false.

  • HealthChecks.WebhooksPayload

    --HealthChecks.WebhooksPayload <value>

    An escaped JSON paylod to be sent to the web hook on failure. Defaults to:

    {
    "attachments": [
    {
    "color": "#FFCC00",
    "pretext": "Health Check Status :warning:",
    "fields": [
    {
    "title": "Details",
    "value": "More details available at /healthchecks-ui",
    "short": false
    },
    {
    "title": "Description",
    "value": "[[DESCRIPTIONS]]",
    "short": false
    }
    ]
    }
    ]
    }
  • HealthChecks.WebhooksRestorePayload

    --HealthChecks.WebhooksRestorePayload <value>

    An escaped JSON paylod to be sent to the web hook on recovery. Defaults to:

    {
    "attachments": [
    {
    "color": "#36a64f",
    "pretext": "Health Check Status :+1:",
    "fields": [
    {
    "title": "Details",
    "value": "More details available at /healthchecks-ui",
    "short": false
    },
    {
    "title": "description",
    "value": "The HealthCheck `[[LIVENESS]]` is recovered. Everything is up and running.",
    "short": false
    }
    ]
    }
    ]
    }
  • HealthChecks.WebhooksUri

    --HealthChecks.WebhooksUri <value>

    The web hook URL. Defaults to null.

Hive

  • Hive.BlocksDir

    --Hive.BlocksDir <value>

    The path to the directory with additional blocks. Defaults to /blocks.

  • Hive.ChainFile

    --Hive.ChainFile <value>

    The path to the test chain spec file. Defaults to /chain.rlp.

  • Hive.Enabled

    --Hive.Enabled <value>

    Whether to enable Hive for debugging. Allowed values: true false. Defaults to false.

  • Hive.GenesisFilePath

    --Hive.GenesisFilePath <value>

    The path to the genesis block file. Defaults to /genesis.json.

  • Hive.KeysDir

    --Hive.KeysDir <value>

    The path to the keystore directory. Defaults to /keys.

Init

  • Init.AutoDump

    --Init.AutoDump <value>

    Auto-dump on bad blocks for diagnostics. Default combines Receipts and Rlp.

    Allowed values:

    • None
    • Receipts
    • Parity
    • Geth
    • Rlp
    • RlpLog
    • Default
    • All

    Defaults to Default.

  • Init.BadBlocksStored

    --Init.BadBlocksStored <value>

    The maximum number of bad blocks observed on the network that will be stored on disk. Defaults to 100.

  • Init.BaseDbPath

    --Init.BaseDbPath <value>

    The base path for all Nethermind databases. Defaults to db.

  • Init.ChainSpecPath

    --Init.ChainSpecPath <value>

    The path to the chain spec file. Defaults to chainspec/foundation.json.

  • Init.DiagnosticMode

    --Init.DiagnosticMode <value>

    The diagnostic mode.

    Allowed values:

    • None
    • MemDb
    • RpcDb
    • ReadOnlyDb
    • VerifyRewards
    • VerifySupply
    • VerifyTrie

    Defaults to None.

  • Init.DiscoveryEnabled

    --Init.DiscoveryEnabled <value>

    Whether to enable the node discovery. If disabled, Nethermind doesn't look for other nodes beyond the bootnodes specified. Allowed values: true false. Defaults to true.

  • Init.EnableUnsecuredDevWallet

    --Init.EnableUnsecuredDevWallet <value>

    Whether to enable the in-app wallet/keystore. Allowed values: true false. Defaults to false.

  • Init.GenesisHash

    --Init.GenesisHash <value>

    The hash of the genesis block. If not specified, the genesis block validity is not checked which is useful in the case of ad hoc test/private networks. Defaults to null.

  • Init.HiveChainSpecPath

    --Init.HiveChainSpecPath <value>

    The path to the chain spec file for Hive tests. Defaults to chainspec/test.json.

  • Init.IsMining

    --Init.IsMining <value>

    Whether to seal/mine new blocks. Allowed values: true false. Defaults to false.

  • Init.KeepDevWalletInMemory

    --Init.KeepDevWalletInMemory <value>

    Whether to create session-only accounts and delete them on shutdown. Allowed values: true false. Defaults to false.

  • Init.KzgSetupPath

    --Init.KzgSetupPath <value>

    The path to KZG trusted setup file. Defaults to null.

  • Init.LogDirectory

    --Init.LogDirectory <value>

    The path to the Nethermind logs directory. Defaults to logs.

  • Init.LogFileName

    --Init.LogFileName <value>

    The name of the log file. Defaults to log.txt.

  • Init.LogRules

    --Init.LogRules <value>

    The logs format as LogPath:LogLevel;* Defaults to null.

  • Init.MemoryHint

    --Init.MemoryHint <value>

    The hint on the max memory limit, in bytes, to configure the database and networking memory allocations. Defaults to null.

  • Init.PeerManagerEnabled

    --Init.PeerManagerEnabled <value>

    Whether to connect to newly discovered peers. Allowed values: true false. Defaults to true.

  • Init.ProcessingEnabled

    --Init.ProcessingEnabled <value>

    Whether to download/process new blocks. Allowed values: true false. Defaults to true.

  • Init.RpcDbUrl

    --Init.RpcDbUrl <value>

    The URL of the remote node used as a database source when DiagnosticMode is set to RpcDb.

  • Init.StaticNodesPath

    --Init.StaticNodesPath <value>

    The path to the static nodes file. Defaults to Data/static-nodes.json.

  • Init.WebSocketsEnabled

    --Init.WebSocketsEnabled <value>

    Whether to enable WebSocket service for the default JSON-RPC port on startup. Allowed values: true false. Defaults to true.

JsonRpc

  • JsonRpc.AdditionalRpcUrls

    --JsonRpc.AdditionalRpcUrls <value>

    An array of additional JSON-RPC URLs to listen at with protocol and JSON-RPC namespace list. For instance, [http://localhost:8546|http;ws|eth;web3]. Defaults to [].

  • JsonRpc.BufferResponses

    --JsonRpc.BufferResponses <value>

    Whether to buffer responses before sending them. This allows using of Content-Length instead of Transfer-Encoding: chunked. Note that it may degrade performance on large responses. The max buffered response length is 2GB. Chunked responses can be larger. Allowed values: true false. Defaults to false.

  • JsonRpc.CallsFilterFilePath

    --JsonRpc.CallsFilterFilePath <value>

    The path to a file with the list of new-line-separated JSON-RPC calls. If specified, only the calls from that file are allowed. Defaults to Data/jsonrpc.filter.

  • JsonRpc.Enabled

    --JsonRpc.Enabled <value>

    Whether to enable the JSON-RPC service. Allowed values: true false. Defaults to false.

  • JsonRpc.EnabledModules

    --JsonRpc.EnabledModules <value>

    An array of JSON-RPC namespaces to enable. For instance, [debug,eth].

    Built-in namespaces:

    • admin
    • client
    • debug
    • engine
    • eth
    • evm
    • health
    • net
    • parity
    • personal
    • proof
    • rpc
    • subscribe
    • trace
    • txpool
    • web3

    Defaults to [Eth,Subscribe,Trace,TxPool,Web3,Personal,Proof,Net,Parity,Health,Rpc].

  • JsonRpc.EngineEnabledModules

    --JsonRpc.EngineEnabledModules <value>

    An array of additional JSON-RPC URLs to listen at with protocol and JSON-RPC namespace list for Engine API. Defaults to [Net,Eth,Subscribe,Web3].

  • JsonRpc.EngineHost

    --JsonRpc.EngineHost <value>

    The Engine API host. Defaults to 127.0.0.1.

  • JsonRpc.EnginePort

    --JsonRpc.EnginePort <value>

    The Engine API port. Defaults to null.

  • JsonRpc.EstimateErrorMargin

    --JsonRpc.EstimateErrorMargin <value>

    The error margin used in the eth_estimateGas JSON-RPC method, in basis points. Defaults to 150.

  • JsonRpc.EthModuleConcurrentInstances

    --JsonRpc.EthModuleConcurrentInstances <value>

    The number of concurrent instances for non-sharable calls:

    • eth_call
    • eth_estimateGas
    • eth_getLogs
    • eth_newBlockFilter
    • eth_newFilter
    • eth_newPendingTransactionFilter
    • eth_uninstallFilter

    This limits the load on the CPU and I/O to reasonable levels. If the limit is exceeded, HTTP 503 is returned along with the JSON-RPC error. Defaults to the number of logical processors.

  • JsonRpc.GasCap

    --JsonRpc.GasCap <value>

    The gas limit for eth_call and eth_estimateGas. Defaults to 100000000.

  • JsonRpc.Host

    --JsonRpc.Host <value>

    The JSON-RPC service host. Defaults to 127.0.0.1.

  • JsonRpc.IpcUnixDomainSocketPath

    --JsonRpc.IpcUnixDomainSocketPath <value>

    The path to connect a UNIX domain socket over.

  • JsonRpc.JwtSecretFile

    --JsonRpc.JwtSecretFile <value>

    The path to the JWT secret file required for the Engine API authentication. Defaults to keystore/jwt-secret.

  • JsonRpc.MaxBatchResponseBodySize

    --JsonRpc.MaxBatchResponseBodySize <value>

    The max batch size limit for batched JSON-RPC calls. Defaults to 33554432.

  • JsonRpc.MaxBatchSize

    --JsonRpc.MaxBatchSize <value>

    The max number of JSON-RPC requests in a batch. Defaults to 1024.

  • JsonRpc.MaxLoggedRequestParametersCharacters

    --JsonRpc.MaxLoggedRequestParametersCharacters <value>

    The max number of characters of a JSON-RPC request parameter printing to the log. Defaults to null.

  • JsonRpc.MaxLogsPerResponse

    --JsonRpc.MaxLogsPerResponse <value>

    The max number of logs per response for the eth_getLogs JSON-RPC method. 0 to lift the limit. Defaults to 20000.

  • JsonRpc.MaxRequestBodySize

    --JsonRpc.MaxRequestBodySize <value>

    The max length of HTTP request body, in bytes. Defaults to 30000000.

  • JsonRpc.MaxSimulateBlocksCap

    --JsonRpc.MaxSimulateBlocksCap <value>

    The max block count limit for the eth_simulate JSON-RPC method. Defaults to 256.

  • JsonRpc.MethodsLoggingFiltering

    --JsonRpc.MethodsLoggingFiltering <value>

    An array of the method names not to log. Defaults to [engine_newPayloadV1,engine_newPayloadV2,engine_newPayloadV3,engine_forkchoiceUpdatedV1,engine_forkchoiceUpdatedV2].

  • JsonRpc.Port

    --JsonRpc.Port <value>

    The JSON-RPC service HTTP port. Defaults to 8545.

  • JsonRpc.ReportIntervalSeconds

    --JsonRpc.ReportIntervalSeconds <value>

    The interval, in seconds, between the JSON-RPC stats report log. Defaults to 300.

  • JsonRpc.RequestQueueLimit

    --JsonRpc.RequestQueueLimit <value>

    The max number of concurrent requests in the queue for:

    • eth_call
    • eth_estimateGas
    • eth_getLogs
    • eth_newFilter
    • eth_newBlockFilter
    • eth_newPendingTransactionFilter
    • eth_uninstallFilter

    0 to lift the limit. Defaults to 500.

  • JsonRpc.RpcRecorderBaseFilePath

    --JsonRpc.RpcRecorderBaseFilePath <value>

    The path to the base file for diagnostic recording. Defaults to logs/rpc.{counter}.txt.

  • JsonRpc.RpcRecorderState

    --JsonRpc.RpcRecorderState <value>

    The diagnostic recording mode.

    Allowed values:

    • None
    • Request
    • Response
    • All

    Defaults to None.

  • JsonRpc.Timeout

    --JsonRpc.Timeout <value>

    The request timeout, in milliseconds. Defaults to 20000.

  • JsonRpc.WebSocketsPort

    --JsonRpc.WebSocketsPort <value>

    The JSON-RPC service WebSockets port. Defaults to 8545.

KeyStore

  • KeyStore.BlockAuthorAccount

    --KeyStore.BlockAuthorAccount <value>

    An account to use as the block author (coinbase).

  • KeyStore.Cipher

    --KeyStore.Cipher <value>

    See Web3 secret storage definition. Defaults to aes-128-ctr.

  • KeyStore.EnodeAccount

    --KeyStore.EnodeAccount <value>

    An account to use for networking (enode). If neither this nor the EnodeKeyFile option is specified, the key is autogenerated in node.key.plain file.

  • KeyStore.EnodeKeyFile

    --KeyStore.EnodeKeyFile <value>

    The path to the key file to use by for networking (enode). If neither this nor the EnodeAccount is specified, the key is autogenerated in node.key.plain file.

  • KeyStore.IVSize

    --KeyStore.IVSize <value>

    See Web3 secret storage definition. Defaults to 16.

  • KeyStore.Kdf

    --KeyStore.Kdf <value>

    See Web3 secret storage definition. Defaults to scrypt.

  • KeyStore.KdfparamsDklen

    --KeyStore.KdfparamsDklen <value>

    See Web3 secret storage definition. Defaults to 32.

  • KeyStore.KdfparamsN

    --KeyStore.KdfparamsN <value>

    See Web3 secret storage definition. Defaults to 262144.

  • KeyStore.KdfparamsP

    --KeyStore.KdfparamsP <value>

    See Web3 secret storage definition. Defaults to 1.

  • KeyStore.KdfparamsR

    --KeyStore.KdfparamsR <value>

    See Web3 secret storage definition. Defaults to 8.

  • KeyStore.KdfparamsSaltLen

    --KeyStore.KdfparamsSaltLen <value>

    See Web3 secret storage definition. Defaults to 32.

  • KeyStore.KeyStoreDirectory

    --KeyStore.KeyStoreDirectory <value>

    The path to the keystore directory. Defaults to keystore.

  • KeyStore.KeyStoreEncoding

    --KeyStore.KeyStoreEncoding <value>

    See Web3 secret storage definition. Defaults to UTF-8.

  • KeyStore.PasswordFiles

    --KeyStore.PasswordFiles <value>

    An array of password files paths used to unlock the accounts set with UnlockAccounts. Defaults to [].

  • KeyStore.Passwords

    --KeyStore.Passwords <value>

    An array of passwords used to unlock the accounts set with UnlockAccounts. Defaults to [].

  • KeyStore.SymmetricEncrypterBlockSize

    --KeyStore.SymmetricEncrypterBlockSize <value>

    See Web3 secret storage definition. Defaults to 128.

  • KeyStore.SymmetricEncrypterKeySize

    --KeyStore.SymmetricEncrypterKeySize <value>

    See Web3 secret storage definition. Defaults to 128.

  • KeyStore.TestNodeKey

    --KeyStore.TestNodeKey <value>

    A plaintext private key to use for testing purposes.

  • KeyStore.UnlockAccounts

    --KeyStore.UnlockAccounts <value>

    An array of accounts to unlock on startup using passwords either in PasswordFiles and Passwords. Defaults to [].

Merge

  • Merge.BuilderRelayUrl

    --Merge.BuilderRelayUrl <value>

    The URL of a builder relay. If specified, blocks are sent to the relay. Defaults to null.

  • Merge.CollectionsPerDecommit

    --Merge.CollectionsPerDecommit <value>

    Request the garbage collector (GC) to release the process memory.

    Allowed values:

    • -1 to disable
    • 0 to release every time
    • A positive number to release memory after that many Engine API calls

    Defaults to 25.

  • Merge.CompactMemory

    --Merge.CompactMemory <value>

    The memory compaction mode. When set to Full, compacts the large object heap (LOH) if SweepMemory is set to Gen2.

    Allowed values:

    • No
    • Yes
    • Full

    Defaults to Yes.

  • Merge.Enabled

    --Merge.Enabled <value>

    Whether to enable the Merge hard fork. Allowed values: true false. Defaults to true.

  • Merge.FinalTotalDifficulty

    --Merge.FinalTotalDifficulty <value>

    The total difficulty of the last PoW block. Must be greater than or equal to the terminal total difficulty (TTD). Defaults to null.

  • Merge.PrioritizeBlockLatency

    --Merge.PrioritizeBlockLatency <value>

    Whether to reduce block latency by disabling garbage collection during Engine API calls. Allowed values: true false. Defaults to true.

  • Merge.SweepMemory

    --Merge.SweepMemory <value>

    The garbage collection (GC) mode between Engine API calls.

    Allowed values:

    • NoGC
    • Gen0
    • Gen1
    • Gen2

    Defaults to Gen1.

  • Merge.TerminalBlockHash

    --Merge.TerminalBlockHash <value>

    The terminal PoW block hash used for the transition. Defaults to null.

  • Merge.TerminalBlockNumber

    --Merge.TerminalBlockNumber <value>

    The terminal PoW block number used for the transition.

  • Merge.TerminalTotalDifficulty

    --Merge.TerminalTotalDifficulty <value>

    The terminal total difficulty (TTD) used for the transition. Defaults to null.

Metrics

  • Metrics.CountersEnabled

    --Metrics.CountersEnabled <value>

    Whether to publish metrics using .NET diagnostics that can be collected with dotnet-counters. Allowed values: true false. Defaults to false.

  • Metrics.Enabled

    --Metrics.Enabled <value>

    Whether to publish various metrics to Prometheus Pushgateway at a given interval. Allowed values: true false. Defaults to false.

  • Metrics.EnableDbSizeMetrics

    --Metrics.EnableDbSizeMetrics <value>

    Whether to publish database size metrics. Allowed values: true false. Defaults to true.

  • Metrics.ExposeHost

    --Metrics.ExposeHost <value>

    The IP address to expose Prometheus metrics at. The value of + means listening on all available hostnames. Setting this to localhost prevents remote access. Defaults to +.

  • Metrics.ExposePort

    --Metrics.ExposePort <value>

    The port to expose Prometheus metrics at. Defaults to null.

  • Metrics.IntervalSeconds

    --Metrics.IntervalSeconds <value>

    The frequency of pushing metrics to Prometheus, in seconds. Defaults to 5.

  • Metrics.NodeName

    --Metrics.NodeName <value>

    The name to display on the Grafana dashboard. Defaults to "Nethermind".

  • Metrics.PushGatewayUrl

    --Metrics.PushGatewayUrl <value>

    The Prometheus Pushgateway instance URL.

Mining

  • Mining.Enabled

    --Mining.Enabled <value>

    Whether to produce blocks. Allowed values: true false. Defaults to false.

  • Mining.Signer

    --Mining.Signer <value>

    The URL of an external signer like Clef. Defaults to null.

Network

  • Network.Bootnodes

    --Network.Bootnodes <value>

    A comma-separated enode list to be used as boot nodes.

  • Network.DiagTracerEnabled

    --Network.DiagTracerEnabled <value>

    Whether to enable a verbose diagnostic tracing. Allowed values: true false. Defaults to false.

  • Network.DiscoveryDns

    --Network.DiscoveryDns <value>

    Use tree is available through a DNS name. For the default of <chain name>.ethdisco.net, leave unspecified. Defaults to null.

  • Network.DiscoveryPort

    --Network.DiscoveryPort <value>

    The UDP port number for incoming discovery connections. It's recommended to keep it the same as the TCP port (P2PPort) because other values have not been tested yet. Defaults to 30303.

  • Network.EnableUPnP

    --Network.EnableUPnP <value>

    Whether to enable automatic port forwarding via UPnP. Allowed values: true false. Defaults to false.

  • Network.ExternalIp

    --Network.ExternalIp <value>

    The external IP. Use only when the external IP cannot be resolved automatically. Defaults to null.

  • Network.LocalIp

    --Network.LocalIp <value>

    The local IP. Use only when the local IP cannot be resolved automatically. Defaults to null.

  • Network.MaxActivePeers

    --Network.MaxActivePeers <value>

    The max allowed number of connected peers. Defaults to 50.

  • Network.MaxNettyArenaCount

    --Network.MaxNettyArenaCount <value>

    The maximum DotNetty arena count. Increasing this on a high-core CPU without increasing the memory budget may reduce chunk size so much that it causes a huge memory allocation. Defaults to 8.

  • Network.NettyArenaOrder

    --Network.NettyArenaOrder <value>

    The size of the DotNetty arena order. -1 to depend on the memory hint. Defaults to -1.

  • Network.OnlyStaticPeers

    --Network.OnlyStaticPeers <value>

    Whether to use static peers only. Allowed values: true false. Defaults to false.

  • Network.P2PPort

    --Network.P2PPort <value>

    The TCP port for incoming P2P connections. Defaults to 30303.

  • Network.PriorityPeersMaxCount

    --Network.PriorityPeersMaxCount <value>

    The max number of priority peers. Can be overridden by a plugin. Defaults to 0.

  • Network.StaticPeers

    --Network.StaticPeers <value>

    A list of peers to keep connection for. Static peers are affected by MaxActivePeers. Defaults to null.

Optimism

  • Optimism.SequencerUrl

    --Optimism.SequencerUrl <value>

    The sequencer address. Defaults to null.

Pruning

  • Pruning.AvailableSpaceCheckEnabled

    --Pruning.AvailableSpaceCheckEnabled <value>

    Whether to enables available disk space check. Allowed values: true false. Defaults to true.

  • Pruning.CacheMb

    --Pruning.CacheMb <value>

    The in-memory cache size, in MB. The bigger the cache size, the bigger the disk space savings. Defaults to 1024.

  • Pruning.FullPruningCompletionBehavior

    --Pruning.FullPruningCompletionBehavior <value>

    The behavior after pruning completion:

    • None: Do nothing.
    • ShutdownOnSuccess: Shut Nethermind down if pruning has succeeded but leave it running if failed.
    • AlwaysShutdown: Shut Nethermind down when pruning completes, regardless of its status.

    Allowed values:

    • None
    • ShutdownOnSuccess
    • AlwaysShutdown

    Defaults to None.

  • Pruning.FullPruningDisableLowPriorityWrites

    --Pruning.FullPruningDisableLowPriorityWrites <value>

    Whether to disable low-priority for pruning writes. Full pruning uses low-priority write operations to prevent blocking block processing. If block processing is not high-priority, set this option to true for faster pruning. Allowed values: true false. Defaults to false.

  • Pruning.FullPruningMaxDegreeOfParallelism

    --Pruning.FullPruningMaxDegreeOfParallelism <value>

    The max number of parallel tasks that can be used by full pruning:

    Allowed values:

    • -1 to use the number of logical processors
    • 0 to use 25% of logical processors
    • 1 to run on single thread

    The recommended value depends on the type of the node:

    • If the node needs to be responsive (serves for RPC or validator), then the recommended value is 0 or -1.
    • If the node doesn't have many other responsibilities but needs to be able to follow the chain reliably without any delays and produce live logs, the 0 or 1 is recommended.
    • If the node doesn't have to be responsive, has very fast I/O (like NVMe) and the shortest pruning time is to be achieved, then -1 is recommended. Defaults to 0.
  • Pruning.FullPruningMemoryBudgetMb

    --Pruning.FullPruningMemoryBudgetMb <value>

    The memory budget, in MB, used for the trie visit. Increasing this value significantly reduces the IOPS requirement at the expense of memory usage. 0 to disable. Defaults to 4000.

  • Pruning.FullPruningMinimumDelayHours

    --Pruning.FullPruningMinimumDelayHours <value>

    The minimum delay, in hours, between full pruning operations not to exhaust disk writes. Defaults to 240.

  • Pruning.FullPruningThresholdMb

    --Pruning.FullPruningThresholdMb <value>

    The threshold, in MB, to trigger full pruning. Depends on Mode and FullPruningTrigger. Defaults to 256000.

  • Pruning.FullPruningTrigger

    --Pruning.FullPruningTrigger <value>

    The full pruning trigger:

    • Manual: Triggered manually.
    • StateDbSize: Trigger when the state DB size is above the threshold.
    • VolumeFreeSpace: Trigger when the free disk space where the state DB is stored is below the threshold.

    Allowed values:

    • Manual
    • StateDbSize
    • VolumeFreeSpace

    Defaults to Manual.

  • Pruning.Mode

    --Pruning.Mode <value>

    The pruning mode:

    • None: No pruning (full archive)
    • Memory: In-memory pruning
    • Full: Full pruning
    • Hybrid: Combined in-memory and full pruning

    Allowed values:

    • None
    • Memory
    • Full
    • Hybrid

    Defaults to Hybrid.

  • Pruning.PersistenceInterval

    --Pruning.PersistenceInterval <value>

    The block persistence frequency. If set to N, it caches after each Nth block even if not required by cache memory usage. Defaults to 8192.

  • Pruning.PruningBoundary

    --Pruning.PruningBoundary <value>

    The number of past states before the state gets pruned. Used to determine how old of a state to keep from the head. Defaults to 64.

  • Pruning.TrackedPastKeyCountMemoryRatio

    --Pruning.TrackedPastKeyCountMemoryRatio <value>

    The ratio of memory out of Pruning.CacheMb to allocate for the LRU cache, used to track past keys for live pruning. Defaults to 0.1.

Receipt

  • Receipt.CompactReceiptStore

    --Receipt.CompactReceiptStore <value>

    Whether to compact receipts database size at the expense of RPC performance. Allowed values: true false. Defaults to true.

  • Receipt.CompactTxIndex

    --Receipt.CompactTxIndex <value>

    Whether to compact receipts transaction index database size at the expense of RPC performance. Allowed values: true false. Defaults to true.

  • Receipt.ReceiptsMigration

    --Receipt.ReceiptsMigration <value>

    Whether to migrate the receipts database to the new schema. Allowed values: true false. Defaults to false.

  • Receipt.StoreReceipts

    --Receipt.StoreReceipts <value>

    Whether to store receipts after a new block is processed. This setting is independent from downloading receipts in fast sync mode. Allowed values: true false. Defaults to true.

  • Receipt.TxLookupLimit

    --Receipt.TxLookupLimit <value>

    The number of recent blocks to maintain transaction index for. 0 to never remove indices, -1 to never index. Defaults to 2350000.

Seq

  • Seq.ApiKey

    --Seq.ApiKey <value>

    The Seq API key.

  • Seq.MinLevel

    --Seq.MinLevel <value>

    The min log level to sent to Seq. Defaults to Off.

  • Seq.ServerUrl

    --Seq.ServerUrl <value>

    The Seq instance URL. Defaults to http://localhost:5341.

Snapshot

  • Snapshot.Checksum

    --Snapshot.Checksum <value>

    The SHA-256 checksum of the snapshot file. Defaults to null.

  • Snapshot.DownloadUrl

    --Snapshot.DownloadUrl <value>

    The URL of the snapshot file. Defaults to null.

  • Snapshot.Enabled

    --Snapshot.Enabled <value>

    Whether to enable the Snapshot plugin. Allowed values: true false. Defaults to false.

  • Snapshot.SnapshotDirectory

    --Snapshot.SnapshotDirectory <value>

    The path to the directory to store the snapshot file. Defaults to snapshot.

  • Snapshot.SnapshotFileName

    --Snapshot.SnapshotFileName <value>

    The name of the snapshot file. Defaults to snapshot.zip.

Sync

  • Sync.AncientBodiesBarrier

    --Sync.AncientBodiesBarrier <value>

    The earliest body downloaded with fast sync when DownloadBodiesInFastSync is set to true. The actual value is determined as follows:

    max{ 1, min{ PivotNumber, AncientBodiesBarrier } }

    Defaults to 0.

  • Sync.AncientReceiptsBarrier

    --Sync.AncientReceiptsBarrier <value>

    The earliest receipt downloaded with fast sync when DownloadReceiptsInFastSync is set to true. The actual value is determined as follows:

    max{ 1, min{ PivotNumber, max{ AncientBodiesBarrier, AncientReceiptsBarrier } } }

    Defaults to 0.

  • Sync.BlocksDbTuneDbMode

    --Sync.BlocksDbTuneDbMode <value>

    Configure the blocks database for write optimizations during sync.

    Allowed values:

    • Default
    • WriteBias
    • HeavyWrite
    • AggressiveHeavyWrite
    • DisableCompaction
    • EnableBlobFiles
    • HashDb

    Defaults to EnableBlobFiles.

  • Sync.DownloadBodiesInFastSync

    --Sync.DownloadBodiesInFastSync <value>

    Whether to download the block bodies in the Fast sync mode. Allowed values: true false. Defaults to true.

  • Sync.DownloadHeadersInFastSync

    --Sync.DownloadHeadersInFastSync <value>

    Whether to download the old block headers in the Fast sync mode. If false, Nethermind downloads only recent blocks headers. Allowed values: true false. Defaults to true.

  • Sync.DownloadReceiptsInFastSync

    --Sync.DownloadReceiptsInFastSync <value>

    Whether to download receipts in the Fast sync mode. This slows down the process by a few hours but allows to interact with dApps that perform extensive historical logs searches. Allowed values: true false. Defaults to true.

  • Sync.ExitOnSynced

    --Sync.ExitOnSynced <value>

    Whether to shut down Nethermind once sync is finished. Allowed values: true false. Defaults to false.

  • Sync.ExitOnSyncedWaitTimeSec

    --Sync.ExitOnSyncedWaitTimeSec <value>

    The time, in seconds, to wait before shutting down Nethermind once sync is finished. Defaults to 60.

  • Sync.FastSync

    --Sync.FastSync <value>

    Whether to use the Fast sync mode (the eth/63 synchronization algorithm). Allowed values: true false. Defaults to false.

  • Sync.FastSyncCatchUpHeightDelta

    --Sync.FastSyncCatchUpHeightDelta <value>

    In Fast sync mode, the min height threshold limit up to which the Full sync, if already on, stays on when the chain is behind the network head. If the limit is exceeded, it switches back to Fast sync. For regular usage scenarios, setting this value lower than 32 is not recommended as this can cause issues with chain reorgs. Note that the last 2 blocks are always processed in Full sync, so setting it lower than 2 has no effect. Defaults to 8192.

  • Sync.FixReceipts

    --Sync.FixReceipts <value>

    Whether to enable receipts validation that checks for receipts that might be missing because of a bug. If needed, receipts are downloaded from the network. If true, the pivot number must be same one used originally as it's used as a cut-off point. Allowed values: true false. Defaults to false.

  • Sync.FixTotalDifficulty

    --Sync.FixTotalDifficulty <value>

    Whether to recalculate the total difficulty from FixTotalDifficultyStartingBlock to FixTotalDifficultyLastBlock. Allowed values: true false. Defaults to false.

  • Sync.FixTotalDifficultyLastBlock

    --Sync.FixTotalDifficultyLastBlock <value>

    The last block to recalculate the total difficulty for. If not specified, the best known block is used. Defaults to null.

  • Sync.FixTotalDifficultyStartingBlock

    --Sync.FixTotalDifficultyStartingBlock <value>

    The first block to recalculate the total difficulty for. Defaults to 1.

  • Sync.MaxAttemptsToUpdatePivot

    --Sync.MaxAttemptsToUpdatePivot <value>

    The max number of attempts to update the pivot block based on the FCU message from the consensus client. Defaults to 2147483647.

  • Sync.MaxProcessingThreads

    --Sync.MaxProcessingThreads <value>

    The max number of threads used for syncing. 0 to use the number of logical processors. Defaults to 0.

  • Sync.NetworkingEnabled

    --Sync.NetworkingEnabled <value>

    Whether to connect to peers and sync. Allowed values: true false. Defaults to true.

  • Sync.NonValidatorNode

    --Sync.NonValidatorNode <value>

    Whether to operate as a non-validator. If true, the DownloadReceiptsInFastSync and DownloadBodiesInFastSync can be set to false. Allowed values: true false. Defaults to false.

  • Sync.PivotHash

    --Sync.PivotHash <value>

    The hash of the pivot block for the Fast sync mode. Defaults to null.

  • Sync.PivotNumber

    --Sync.PivotNumber <value>

    The number of the pivot block for the Fast sync mode. Defaults to 0.

  • Sync.PivotTotalDifficulty

    --Sync.PivotTotalDifficulty <value>

    The total difficulty of the pivot block for the Fast sync mode. Defaults to null.

  • Sync.SnapSync

    --Sync.SnapSync <value>

    Whether to use the Snap sync mode. Allowed values: true false. Defaults to false.

  • Sync.SnapSyncAccountRangePartitionCount

    --Sync.SnapSyncAccountRangePartitionCount <value>

    The number of account range partitions to create. Increases the Snap sync request concurrency. Allowed values are between between 1 and 256. Defaults to 8.

  • Sync.StrictMode

    --Sync.StrictMode <value>

    Whether to disable some optimizations and do a more extensive sync. Useful when sync state is corrupted. Allowed values: true false. Defaults to false.

  • Sync.SynchronizationEnabled

    --Sync.SynchronizationEnabled <value>

    Whether to download and process new blocks. Allowed values: true false. Defaults to true.

  • Sync.TuneDbMode

    --Sync.TuneDbMode <value>

    Configure the database for write optimizations during sync. Significantly reduces the total number of writes and sync time if you are not network limited.

    Allowed values:

    • Default
    • WriteBias
    • HeavyWrite
    • AggressiveHeavyWrite
    • DisableCompaction
    • EnableBlobFiles
    • HashDb

    Defaults to HeavyWrite.

  • Sync.UseGethLimitsInFastBlocks

    --Sync.UseGethLimitsInFastBlocks <value>

    Whether to make smaller requests, in Fast Blocks mode, to avoid Geth from disconnecting. On the Geth-heavy networks (e.g., Mainnet), it's a desired behavior while on Nethermind- or OpenEthereum-heavy networks (Aura), it slows down the sync by a factor of ~4. Allowed values: true false. Defaults to true.

TraceStore

  • TraceStore.BlocksToKeep

    --TraceStore.BlocksToKeep <value>

    The number of blocks to store, counting from the head. If 0, all traces of the processed blocks are stored. Defaults to 10000.

  • TraceStore.DeserializationParallelization

    --TraceStore.DeserializationParallelization <value>

    The max parallelization when deserialization requests the trace_filter method. 0 to use the number of logical processors. If you experience a resource shortage, set to a low number. Defaults to 0.

  • TraceStore.Enabled

    --TraceStore.Enabled <value>

    Whether to enable the TraceStore plugin. If enabled, traces come from the database whenever possible. Allowed values: true false. Defaults to false.

  • TraceStore.TraceTypes

    --TraceStore.TraceTypes <value>

    The type of traces to store.

    Allowed values:

    • None
    • VmTrace
    • StateDiff
    • Trace
    • Rewards
    • All

    Defaults to Trace, Rewards.

TxPool

  • TxPool.BlobCacheSize

    --TxPool.BlobCacheSize <value>

    The max number of full blob transactions cached in memory. The default value uses max 200MB for 6 blobs where one blob is 33MB (256 * 128KB) Defaults to 256.

  • TxPool.BlobsSupport

    --TxPool.BlobsSupport <value>

    Blobs support mode:

    • Disabled: No support for blob transactions
    • InMemory: Blob transactions stored only in memory
    • Storage: Blob transactions stored in db
    • StorageWithReorgs: Blob transactions stored in db with support for restoring reorganized blob transactions to blob pool

    Allowed values:

    • Disabled
    • InMemory
    • Storage
    • StorageWithReorgs

    Defaults to StorageWithReorgs.

  • TxPool.GasLimit

    --TxPool.GasLimit <value>

    The max transaction gas allowed. Defaults to null.

  • TxPool.HashCacheSize

    --TxPool.HashCacheSize <value>

    The max number of cached hashes of already known transactions. Set automatically by the memory hint. Defaults to 524288.

  • TxPool.InMemoryBlobPoolSize

    --TxPool.InMemoryBlobPoolSize <value>

    The max number of full blob transactions stored in memory. Used only if persistent storage is disabled. Defaults to 512.

  • TxPool.MaxPendingBlobTxsPerSender

    --TxPool.MaxPendingBlobTxsPerSender <value>

    The max number of pending blob transactions per single sender. 0 to lift the limit. Defaults to 16.

  • TxPool.MaxPendingTxsPerSender

    --TxPool.MaxPendingTxsPerSender <value>

    The max number of pending transactions per single sender. 0 to lift the limit. Defaults to 0.

  • TxPool.MinBaseFeeThreshold

    --TxPool.MinBaseFeeThreshold <value>

    The minimal percentage of the current base fee that must be surpassed by the max fee (max_fee_per_gas) for the transaction to be broadcasted. Defaults to 70.

  • TxPool.PeerNotificationThreshold

    --TxPool.PeerNotificationThreshold <value>

    The average percentage of transaction hashes from persistent broadcast sent to a peer together with hashes of the last added transactions. Defaults to 5.

  • TxPool.PersistentBlobStorageSize

    --TxPool.PersistentBlobStorageSize <value>

    The max number of full blob transactions stored in the database (increasing the number of transactions in the blob pool also results in higher memory usage). The default value uses max 13GB for 6 blobs where one blob is 2GB (16386 * 128KB). Defaults to 16384.

  • TxPool.ReportMinutes

    --TxPool.ReportMinutes <value>

    The current transaction pool state reporting interval, in minutes. Defaults to null.

  • TxPool.Size

    --TxPool.Size <value>

    The max number of transactions held in the mempool (the more transactions in the mempool, the more memory used). Defaults to 2048.

Wallet

  • Wallet.DevAccounts

    --Wallet.DevAccounts <value>

    The number of autogenerated developer accounts to work with. Developer accounts have private keys from 00...01 to 00...n. Defaults to 10.

Environment variables

To configure Nethermind using environment variables, the following naming convention is used in all uppercase:

NETHERMIND_{NAMESPACE}CONFIG_{PROPERTY_NAME}

For instance, the environment variable equivalent of the command line --JsonRpc.JwtSecretFile option is NETHERMIND_JSONRPCCONFIG_JWTSECRETFILE. For the list of configuration namespaces and their options, see Options by namespaces.

Configuration file

The configuration file is a JSON file with .cfg extension. The bundled configuration files are located in the configs directory and named after the network they are used for. For instance, see the Mainnet configuration file mainnet.cfg.