<!-- Canonical: https://docs.linea.build/reference/component-configuration/linea-coordinator-options -->

> For the complete Linea documentation index, see [llms.txt](/llms.txt).
> Agents can fetch this page as Markdown at [https://docs.linea.build/reference/component-configuration/linea-coordinator-options.md](https://docs.linea.build/reference/component-configuration/linea-coordinator-options.md).

# Linea Coordinator configuration reference

Advanced options

Some configuration keys are operational or environment-specific and are included for completeness. Their presence does not indicate that changing them is recommended or supported for every deployment. Verify their applicability against the relevant release and deployment guidance.

Defaults

Defaults are values defined in the Coordinator Kotlin config data classes (`@ConfigDoc(default = ...)`). They are not recommended production settings and may be overridden by deployment configuration. Sample `*.toml` files are never used as the source of defaults.

This reference lists Linea Coordinator TOML configuration keys, grouped by config file and section. Descriptions come from `@ConfigDoc`/`@ConfigSection` annotations on the config data classes; defaults are shown in the Default column.

Generated from [`LFDT-Lineth/lineth-monorepo@0c18048`](https://github.com/LFDT-Lineth/lineth-monorepo/commit/0c1804823f735f549eaf6d61b3260228edcbd28c).

Keys may differ in other Coordinator releases.

## coordinator

Main Coordinator configuration.

### `api`

Coordinator JSON-RPC and observability API settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `api.json-rpc-path` | `String` | no | `/` | active | HTTP path the JSON-RPC API is served on. |
| `api.json-rpc-port` | `UInt` | no | `0` | active | Port serving the coordinator JSON-RPC API. 0 picks a random free port. |
| `api.json-rpc-server-verticles` | `Int` | no | `1` | active | Number of Vert.x verticles serving the JSON-RPC API. |
| `api.observability-port` | `UInt` | no | `9545` | active | Port serving observability endpoints (metrics/health). |

### `conflation`

Block conflation, blob compression, and proof aggregation settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `conflation.backtesting-directory` | `Path?` | no | - | active | Directory used to persist conflation backtesting data. Omit to disable backtesting output. Example: `/data/conflation-backtesting`. |
| `conflation.blob-compression.batches-limit` | `UInt?` | no | - | active | Maximum number of batches per blob. Omit for no explicit limit. Example: `1`. |
| `conflation.blob-compression.blob-compressor-version` | `BlobCompressorVersion` | no | `V3` | active | Blob compressor version to use. |
| `conflation.blob-compression.blob-size-limit` | `UInt` | no | `102400` | active | Maximum compressed blob size in bytes before a blob is finalized. |
| `conflation.blob-compression.handler-polling-interval` | `Duration` | no | `PT1S` | active | Interval between blob compression handler runs. |
| `conflation.blocks-limit` | `UInt?` | no | - | active | Maximum number of L2 blocks in a single conflation. Omit for no block-count limit. Example: `2`. |
| `conflation.conflation-deadline` | `Duration?` | no | - | active | Maximum time to wait before conflating available blocks even if limits are not reached. Omit to disable deadline-based conflation. Example: `PT6S`. |
| `conflation.conflation-deadline-check-interval` | `Duration` | no | `PT30S` | active | How often to check whether the conflation deadline has elapsed. |
| `conflation.conflation-deadline-last-block-confirmation-delay` | `Duration` | no | `PT30S` | active | Delay after the last block before confirming it, to absorb short reorgs. |
| `conflation.consistent-number-of-blocks-on-l1-to-wait` | `UInt` | no | `32` | active | Number of L1 blocks to wait for consistency (finality safety margin); defaults to one epoch. |
| `conflation.disabled` | `Boolean` | no | `false` | active | Whether conflation is disabled. |
| `conflation.force-stop-conflation-at-block-inclusive` | `ULong?` | no | - | active | Inclusive L2 block number at which to stop conflating. Omit to conflate indefinitely. Example: `100000000`. |
| `conflation.force-stop-conflation-at-block-timestamp-inclusive` | `Instant?` | no | - | active | Inclusive block timestamp at which to stop conflating. Omit to conflate indefinitely. Example: `2024-01-01T00:00:00Z`. |
| `conflation.l2-endpoint` | `URL?` | no | - | active | L2 endpoint used for conflation. Falls back to defaults.l2-endpoint. Example: `http://sequencer:8545`. |
| `conflation.l2-fetch-blocks-limit` | `UInt?` | no | - | active | Maximum number of L2 blocks to fetch that are unproven and held in memory. Omit for no limit. Example: `4000`. |
| `conflation.l2-logs-endpoint` | `URL?` | no | - | active | L2 endpoint used for eth_getLogs during conflation. Falls back to l2-endpoint/defaults. Example: `http://sequencer:8545`. |
| `conflation.l2-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `conflation.l2-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `conflation.l2-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `conflation.l2-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `conflation.l2-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `conflation.new-blocks-polling-interval` | `Duration` | no | `PT1S` | active | Interval between polls for new L2 blocks. |
| `conflation.proof-aggregation.aggregation-size-multiple-of` | `UInt` | no | `1` | active | Aggregations are only closed when their size is a multiple of this value. |
| `conflation.proof-aggregation.blobs-limit` | `UInt?` | no | - | active | Maximum number of blobs in a single aggregation. Omit for no explicit limit. Example: `6`. |
| `conflation.proof-aggregation.coordinator-polling-interval` | `Duration` | no | `PT3S` | active | Interval between coordinator polls for new proofs to aggregate. |
| `conflation.proof-aggregation.deadline` | `Duration?` | no | - | active | Maximum time to wait before aggregating available proofs. Omit to disable deadline-based aggregation (wait indefinitely). Example: `PT1M`. |
| `conflation.proof-aggregation.deadline-check-interval` | `Duration` | no | `PT30S` | active | How often to check whether the aggregation deadline has elapsed. |
| `conflation.proof-aggregation.proofs-limit` | `UInt` | no | `300` | active | Maximum number of proofs in a single aggregation. |
| `conflation.proof-aggregation.target-end-blocks` | `List&lt;ULong&gt;?` | no | - | active | L2 block numbers that must end an aggregation (e.g. hard-fork boundaries). Omit for none. Example: `[]`. |
| `conflation.proof-aggregation.timestamp-based-hard-forks` | `List&lt;Instant&gt;` | no | `[]` | active | Timestamps that force an aggregation boundary (e.g. timestamp-based hard forks). |
| `conflation.proof-aggregation.wait-api-resume-after-target-block` | `Boolean` | no | `false` | active | Whether to wait for the API to resume after the target block before aggregating. |
| `conflation.proof-aggregation.wait-for-no-l2-activity-to-trigger-aggregation` | `Boolean` | no | `false` | active | Whether to wait for a period of no L2 activity before triggering an aggregation. |
| `conflation.proof-aggregation.wait-target-block-l1-finalization` | `Boolean` | no | `false` | active | Whether to wait for the target block to be finalized on L1 before aggregating. |
| `conflation.riscv-starting-block-timestamp-inclusive` | `Instant?` | no | - | active | RISC-V starting block timestamp (inclusive). Example: `2027-01-01T00:00:00Z`. |

### `database`

Coordinator PostgreSQL persistence settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `database.hostname` | `String` | yes | - | active | PostgreSQL hostname used by the coordinator persistence layer. Example: `postgres`. |
| `database.password` | `Masked` | yes | - | active | PostgreSQL password. Masked in logs. |
| `database.persistence-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `database.persistence-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `database.persistence-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `database.persistence-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `database.persistence-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `database.port` | `UInt` | no | `5432` | active | PostgreSQL port. |
| `database.read-pipelining-limit` | `Int` | no | `10` | active | Maximum number of read queries pipelined on a single connection. |
| `database.read-pool-size` | `Int` | no | `10` | active | Connection pool size for read-only queries. |
| `database.schema` | `String` | no | `linea_coordinator` | active | PostgreSQL schema (database) name. |
| `database.schema-version` | `Int` | no | `4` | active | Expected database schema version; must match a supported migration version. |
| `database.transactional-pool-size` | `Int` | no | `10` | active | Connection pool size for transactional (read-write) queries. |
| `database.username` | `String` | yes | - | active | PostgreSQL username. Example: `postgres`. |

### `defaults`

Shared defaults (L1/L2 endpoints and retry policies) reused by coordinator services.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `defaults.l1-endpoint` | `URL?` | no | - | active | Default L1 execution-layer JSON-RPC endpoint used by services that do not override it. Example: `http://l1-el-node:8545`. |
| `defaults.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `defaults.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `defaults.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `defaults.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `defaults.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `defaults.l2-endpoint` | `URL?` | no | - | active | Default L2 JSON-RPC endpoint used by services that do not override it. Example: `http://sequencer:8545`. |
| `defaults.l2-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `defaults.l2-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `defaults.l2-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `defaults.l2-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `defaults.l2-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |

### `forced-transactions`

Forced transactions handling settings; omit the section to disable the feature.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `forced-transactions.disabled` | `Boolean` | no | `false` | active | Whether forced transactions handling is disabled. |
| `forced-transactions.invalidity-proof-check-interval` | `Duration` | no | `PT2M` | active | Interval between checks for invalidity proofs of forced transactions. |
| `forced-transactions.l1-endpoint` | `URL?` | no | - | active | L1 endpoint used to read forced transactions. Falls back to defaults.l1-endpoint. Example: `http://l1-el-node:8545`. |
| `forced-transactions.l1-event-scraping.eth-logs-search-block-chunk-size` | `UInt` | no | `1000` | active | Number of blocks scanned per eth_getLogs chunk. |
| `forced-transactions.l1-event-scraping.eth-logs-search-max-block-range` | `UInt` | no | `10000` | active | Maximum block range covered by a single eth_getLogs search. |
| `forced-transactions.l1-event-scraping.eth-logs-search-success-backoff-delay` | `Duration` | no | `PT0.001S` | active | Backoff delay after a successful eth_getLogs search before the next one. |
| `forced-transactions.l1-event-scraping.polling-interval` | `Duration` | no | `PT12S` | active | Interval between L1 log polling attempts. |
| `forced-transactions.l1-event-scraping.polling-timeout` | `Duration` | no | `PT5S` | active | Timeout for each L1 log polling request. |
| `forced-transactions.l1-highest-block-tag` | `BlockParameter` | no | `FINALIZED` | active | L1 block tag up to which forced-transaction events are read. |
| `forced-transactions.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `forced-transactions.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `forced-transactions.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `forced-transactions.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `forced-transactions.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `forced-transactions.processing-batch-size` | `UInt` | no | `10` | active | Number of forced transactions processed per batch. |
| `forced-transactions.processing-delay` | `Duration` | no | `PT0S` | active | Delay before processing a forced transaction after it is detected. |
| `forced-transactions.processing-tick-interval` | `Duration` | no | `PT2M` | active | Interval between forced-transaction processing ticks. |
| `forced-transactions.sequencer-endpoint` | `URL` | yes | - | active | Sequencer endpoint to which forced transactions are submitted. Example: `http://sequencer:8545`. |
| `forced-transactions.sequencer-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `forced-transactions.sequencer-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `forced-transactions.sequencer-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `forced-transactions.sequencer-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `forced-transactions.sequencer-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |

### `l1-finalization-monitor`

L1 finalization monitor polling settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `l1-finalization-monitor.l1-endpoint` | `URL?` | no | - | active | L1 endpoint for finalization monitoring. Falls back to defaults.l1-endpoint. Example: `http://l1-el-node:8545`. |
| `l1-finalization-monitor.l1-polling-interval` | `Duration` | no | `PT6S` | active | Interval between L1 finalization polls. |
| `l1-finalization-monitor.l1-query-block-tag` | `Tag` | no | `FINALIZED` | active | L1 block tag treated as finalized (e.g. FINALIZED, SAFE, LATEST). |
| `l1-finalization-monitor.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l1-finalization-monitor.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l1-finalization-monitor.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l1-finalization-monitor.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l1-finalization-monitor.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `l1-finalization-monitor.l2-endpoint` | `URL?` | no | - | active | L2 endpoint for finalization monitoring. Falls back to defaults.l2-endpoint. Example: `http://sequencer:8545`. |
| `l1-finalization-monitor.l2-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l1-finalization-monitor.l2-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l1-finalization-monitor.l2-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l1-finalization-monitor.l2-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l1-finalization-monitor.l2-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |

### `l1-submission`

L1 blob/aggregation submission (data availability and finalization) settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `l1-submission.aggregation.disabled` | `Boolean` | no | `false` | active | Whether aggregation submission is disabled. |
| `l1-submission.aggregation.gas.fallback.priority-fee-per-gas-lower-bound` | `ULong` | yes | - | active | Lower bound for the fallback priority fee per gas. |
| `l1-submission.aggregation.gas.fallback.priority-fee-per-gas-upper-bound` | `ULong` | yes | - | active | Upper bound for the fallback priority fee per gas. |
| `l1-submission.aggregation.gas.gas-limit` | `ULong` | yes | - | active | Gas limit for L1 submission transactions. |
| `l1-submission.aggregation.gas.max-fee-per-blob-gas-cap` | `ULong` | no | `0` | active | Cap on the max fee per blob gas for blob transactions. 0 disables the cap. |
| `l1-submission.aggregation.gas.max-fee-per-gas-cap` | `ULong` | yes | - | active | Cap on the EIP-1559 max fee per gas for L1 submission transactions. |
| `l1-submission.aggregation.gas.max-priority-fee-per-gas-cap` | `ULong` | yes | - | active | Cap on the EIP-1559 max priority fee per gas for L1 submission transactions. |
| `l1-submission.aggregation.l1-endpoint` | `URL?` | no | - | active | L1 endpoint for aggregation submission. Falls back to defaults.l1-endpoint. Example: `http://l1-el-node:8545`. |
| `l1-submission.aggregation.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l1-submission.aggregation.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l1-submission.aggregation.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l1-submission.aggregation.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l1-submission.aggregation.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `l1-submission.aggregation.max-submissions-per-tick` | `UInt` | no | `1` | active | Maximum aggregation submissions sent per tick. |
| `l1-submission.aggregation.signer.custom.name` | `String` | yes | - | active | Logical signer name resolved by the injected signer factory. |
| `l1-submission.aggregation.signer.type` | `SignerType` | yes | - | active | Signer backend to use: WEB3J, WEB3SIGNER, or CUSTOM. Example: `web3signer`. |
| `l1-submission.aggregation.signer.web3j.private-key` | `Masked` | yes | - | active | Hex-encoded 32-byte private key used to sign transactions. Masked in logs. |
| `l1-submission.aggregation.signer.web3signer.endpoint` | `URL` | yes | - | active | Web3Signer HTTP endpoint. Example: `http://web3signer:9000`. |
| `l1-submission.aggregation.signer.web3signer.keep-alive` | `Boolean` | no | `true` | active | Whether to keep Web3Signer HTTP connections alive. |
| `l1-submission.aggregation.signer.web3signer.max-pool-size` | `Int` | no | `10` | active | Maximum size of the HTTP connection pool to Web3Signer. |
| `l1-submission.aggregation.signer.web3signer.public-key` | `ByteArray` | yes | - | active | Hex-encoded 64-byte public key whose corresponding key Web3Signer holds. |
| `l1-submission.aggregation.signer.web3signer.tls.key-store-password` | `Masked` | yes | - | active | Password for the client keystore. Masked in logs. |
| `l1-submission.aggregation.signer.web3signer.tls.key-store-path` | `Path` | yes | - | active | Path to the client keystore used for mutual TLS with Web3Signer. Example: `/etc/coordinator/keystore.p12`. |
| `l1-submission.aggregation.signer.web3signer.tls.trust-store-password` | `Masked` | yes | - | active | Password for the truststore. Masked in logs. |
| `l1-submission.aggregation.signer.web3signer.tls.trust-store-path` | `Path` | yes | - | active | Path to the truststore used to validate the Web3Signer certificate. Example: `/etc/coordinator/truststore.p12`. |
| `l1-submission.aggregation.submission-delay` | `Duration` | no | `PT0S` | active | Delay before submitting an aggregation after it becomes eligible. |
| `l1-submission.aggregation.submission-tick-interval` | `Duration` | no | `PT24S` | active | Interval between aggregation submission ticks. |
| `l1-submission.blob.db-max-blobs-to-return` | `UInt` | no | `100` | active | Maximum number of blobs read from the database per query. |
| `l1-submission.blob.disabled` | `Boolean` | no | `false` | active | Whether blob submission is disabled. |
| `l1-submission.blob.gas.fallback.priority-fee-per-gas-lower-bound` | `ULong` | yes | - | active | Lower bound for the fallback priority fee per gas. |
| `l1-submission.blob.gas.fallback.priority-fee-per-gas-upper-bound` | `ULong` | yes | - | active | Upper bound for the fallback priority fee per gas. |
| `l1-submission.blob.gas.gas-limit` | `ULong` | yes | - | active | Gas limit for L1 submission transactions. |
| `l1-submission.blob.gas.max-fee-per-blob-gas-cap` | `ULong` | no | `0` | active | Cap on the max fee per blob gas for blob transactions. 0 disables the cap. |
| `l1-submission.blob.gas.max-fee-per-gas-cap` | `ULong` | yes | - | active | Cap on the EIP-1559 max fee per gas for L1 submission transactions. |
| `l1-submission.blob.gas.max-priority-fee-per-gas-cap` | `ULong` | yes | - | active | Cap on the EIP-1559 max priority fee per gas for L1 submission transactions. |
| `l1-submission.blob.l1-endpoint` | `URL?` | no | - | active | L1 endpoint for blob submission. Falls back to defaults.l1-endpoint. Example: `http://l1-el-node:8545`. |
| `l1-submission.blob.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l1-submission.blob.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l1-submission.blob.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l1-submission.blob.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l1-submission.blob.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `l1-submission.blob.max-submission-transactions-per-tick` | `UInt` | no | `2` | active | Maximum blob submission transactions sent per tick. |
| `l1-submission.blob.signer.custom.name` | `String` | yes | - | active | Logical signer name resolved by the injected signer factory. |
| `l1-submission.blob.signer.type` | `SignerType` | yes | - | active | Signer backend to use: WEB3J, WEB3SIGNER, or CUSTOM. Example: `web3signer`. |
| `l1-submission.blob.signer.web3j.private-key` | `Masked` | yes | - | active | Hex-encoded 32-byte private key used to sign transactions. Masked in logs. |
| `l1-submission.blob.signer.web3signer.endpoint` | `URL` | yes | - | active | Web3Signer HTTP endpoint. Example: `http://web3signer:9000`. |
| `l1-submission.blob.signer.web3signer.keep-alive` | `Boolean` | no | `true` | active | Whether to keep Web3Signer HTTP connections alive. |
| `l1-submission.blob.signer.web3signer.max-pool-size` | `Int` | no | `10` | active | Maximum size of the HTTP connection pool to Web3Signer. |
| `l1-submission.blob.signer.web3signer.public-key` | `ByteArray` | yes | - | active | Hex-encoded 64-byte public key whose corresponding key Web3Signer holds. |
| `l1-submission.blob.signer.web3signer.tls.key-store-password` | `Masked` | yes | - | active | Password for the client keystore. Masked in logs. |
| `l1-submission.blob.signer.web3signer.tls.key-store-path` | `Path` | yes | - | active | Path to the client keystore used for mutual TLS with Web3Signer. Example: `/etc/coordinator/keystore.p12`. |
| `l1-submission.blob.signer.web3signer.tls.trust-store-password` | `Masked` | yes | - | active | Password for the truststore. Masked in logs. |
| `l1-submission.blob.signer.web3signer.tls.trust-store-path` | `Path` | yes | - | active | Path to the truststore used to validate the Web3Signer certificate. Example: `/etc/coordinator/truststore.p12`. |
| `l1-submission.blob.submission-delay` | `Duration` | no | `PT0S` | active | Delay before submitting a blob after it becomes eligible. |
| `l1-submission.blob.submission-tick-interval` | `Duration` | no | `PT12S` | active | Interval between blob submission ticks. |
| `l1-submission.blob.target-blobs-per-transaction` | `UInt` | no | `6` | active | Target number of blobs per submission transaction (EIP-4844/7594 network cap is 6). |
| `l1-submission.data-availability` | `DataAvailability` | no | `ROLLUP` | active | Data availability mode: ROLLUP submits blobs to L1, VALIDIUM submits off-chain. |
| `l1-submission.disabled` | `Boolean` | no | `false` | active | Whether L1 submission is disabled. |
| `l1-submission.dynamic-gas-price-cap.disabled` | `Boolean` | no | `false` | active | Whether dynamic gas price cap calculation is disabled. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.fetch-interval` | `Duration` | no | `PT3S` | active | Interval between fee-history fetches. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.l1-endpoint` | `URL?` | no | - | active | L1 endpoint for fetching fee history. Falls back to defaults.l1-endpoint. Example: `http://l1-el-node:8545`. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.max-block-count` | `UInt` | no | `1000` | active | Maximum number of blocks requested per fee-history call. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.num-of-blocks-before-latest` | `UInt` | no | `4` | active | Number of blocks before the latest to stop at when fetching fee history. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.reward-percentiles` | `List&lt;UInt&gt;` | no | `[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]` | active | Reward percentiles requested from eth_feeHistory. |
| `l1-submission.dynamic-gas-price-cap.fee-history-fetcher.storage-period` | `Duration` | no | `PT240H` | active | How long fetched fee-history data is retained. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.adjustment-constant` | `UInt` | yes | - | active | Additive constant applied when adjusting the (execution) gas price cap. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.base-fee-per-gas-percentile` | `UInt` | yes | - | active | Percentile (1-100) of historical base fee per gas used in the calculation. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.base-fee-per-gas-percentile-window` | `Duration` | yes | - | active | Time window over which the base-fee-per-gas percentile is computed. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.base-fee-per-gas-percentile-window-leeway` | `Duration` | yes | - | active | Leeway subtracted from the base-fee-per-gas percentile window. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.blob-adjustment-constant` | `UInt` | yes | - | active | Additive constant applied when adjusting the blob gas price cap. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.finalization-target-max-delay` | `Duration` | yes | - | active | Maximum expected delay to finalization, used to scale the gas price cap. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.gas-price-caps-check-coefficient` | `Double` | yes | - | active | Coefficient applied when checking computed gas price caps. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.historic-avg-reward-constant` | `ULong` | yes | - | active | Constant used for the historical average reward calculation. |
| `l1-submission.dynamic-gas-price-cap.gas-price-cap-calculation.historic-base-fee-per-blob-gas-lower-bound` | `ULong` | yes | - | active | Lower bound for the historical base fee per blob gas. |
| `l1-submission.fallback-gas-price.fee-history-block-count` | `UInt` | yes | - | active | Number of blocks of fee history used to compute the fallback gas price. |
| `l1-submission.fallback-gas-price.fee-history-reward-percentile` | `UInt` | yes | - | active | Reward percentile (1-100) used to compute the fallback gas price. |

### `l2-network-gas-pricing`

L2 network gas pricing (dynamic gas price publishing) settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `l2-network-gas-pricing.disabled` | `Boolean` | no | `false` | active | Whether L2 network gas pricing is disabled. |
| `l2-network-gas-pricing.dynamic-gas-pricing.blob-submission-expected-execution-gas` | `ULong` | yes | - | active | Expected L1 execution gas consumed by a blob submission transaction. |
| `l2-network-gas-pricing.dynamic-gas-pricing.calldata-based-pricing.block-size-non-calldata-overhead` | `UInt` | no | `540` | active | Per-block non-calldata size overhead (bytes) in the calculation. |
| `l2-network-gas-pricing.dynamic-gas-pricing.calldata-based-pricing.calldata-sum-size-block-count` | `UInt` | no | `5` | active | Number of recent blocks summed when measuring calldata usage. |
| `l2-network-gas-pricing.dynamic-gas-pricing.calldata-based-pricing.calldata-sum-size-target` | `ULong` | no | `109000` | active | Target total calldata size (bytes) across the measured blocks. |
| `l2-network-gas-pricing.dynamic-gas-pricing.calldata-based-pricing.fee-change-denominator` | `UInt` | no | `32` | active | Denominator controlling how quickly the fee reacts to calldata-usage deviations. |
| `l2-network-gas-pricing.dynamic-gas-pricing.l1-blob-gas` | `ULong` | yes | - | active | Expected L1 blob gas used per blob when computing the variable cost. |
| `l2-network-gas-pricing.dynamic-gas-pricing.margin` | `Double` | yes | - | active | Multiplier applied to the computed variable cost (safety/profit margin). |
| `l2-network-gas-pricing.dynamic-gas-pricing.variable-cost-lower-bound` | `ULong` | yes | - | active | Lower bound for the computed variable cost component. |
| `l2-network-gas-pricing.dynamic-gas-pricing.variable-cost-upper-bound` | `ULong` | yes | - | active | Upper bound for the computed variable cost component. |
| `l2-network-gas-pricing.extra-data-update-endpoint` | `URL` | yes | - | active | L2 endpoint that receives the computed gas pricing via the extra-data update call. Example: `http://sequencer:8545`. |
| `l2-network-gas-pricing.extra-data-update-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l2-network-gas-pricing.extra-data-update-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l2-network-gas-pricing.extra-data-update-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l2-network-gas-pricing.extra-data-update-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l2-network-gas-pricing.extra-data-update-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `l2-network-gas-pricing.fee-history-block-count` | `UInt` | no | `1000` | active | Number of blocks of fee history used in gas pricing. |
| `l2-network-gas-pricing.fee-history-reward-percentile` | `UInt` | no | `15` | active | Reward percentile (1-100) of fee history used in gas pricing. |
| `l2-network-gas-pricing.flat-rate-gas-pricing.compressed-tx-size` | `UInt` | no | `125` | active | Assumed compressed size (bytes) of a transaction. |
| `l2-network-gas-pricing.flat-rate-gas-pricing.expected-gas` | `UInt` | no | `21000` | active | Assumed gas used by a plain transfer transaction. |
| `l2-network-gas-pricing.flat-rate-gas-pricing.gas-price-lower-bound` | `ULong` | yes | - | active | Lower bound (in wei) for the flat-rate L2 gas price. |
| `l2-network-gas-pricing.flat-rate-gas-pricing.gas-price-upper-bound` | `ULong` | yes | - | active | Upper bound (in wei) for the flat-rate L2 gas price. |
| `l2-network-gas-pricing.flat-rate-gas-pricing.plain-transfer-cost-multiplier` | `Double` | no | `1.0` | active | Multiplier applied to the plain-transfer cost when computing the price. |
| `l2-network-gas-pricing.gas-price-fixed-cost` | `ULong` | yes | - | active | Fixed cost component (in wei) added to the computed L2 gas price. |
| `l2-network-gas-pricing.l1-endpoint` | `URL?` | no | - | active | L1 endpoint used for gas pricing. Falls back to defaults.l1-endpoint. Example: `http://l1-el-node:8545`. |
| `l2-network-gas-pricing.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l2-network-gas-pricing.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l2-network-gas-pricing.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l2-network-gas-pricing.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l2-network-gas-pricing.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `l2-network-gas-pricing.l2-endpoint` | `URL?` | no | - | active | L2 endpoint used for gas pricing. Falls back to defaults.l2-endpoint. Example: `http://sequencer:8545`. |
| `l2-network-gas-pricing.l2-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `l2-network-gas-pricing.l2-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `l2-network-gas-pricing.l2-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `l2-network-gas-pricing.l2-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `l2-network-gas-pricing.l2-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `l2-network-gas-pricing.price-update-interval` | `Duration` | no | `PT12S` | active | Interval between L2 gas price recalculations/updates. |

### `message-anchoring`

L1 to L2 message anchoring settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `message-anchoring.anchoring-tick-interval` | `Duration` | no | `PT10S` | active | Interval between message anchoring ticks. |
| `message-anchoring.disabled` | `Boolean` | no | `false` | active | Whether L1 to L2 message anchoring is disabled. |
| `message-anchoring.gas.fee-history-block-count` | `UInt` | no | `4` | active | Number of blocks of fee history used to price anchoring transactions. |
| `message-anchoring.gas.fee-history-reward-percentile` | `UInt` | no | `15` | active | Reward percentile (1-100) of fee history used to price anchoring transactions. |
| `message-anchoring.gas.gas-limit` | `ULong` | no | `2500000` | active | Gas limit for anchoring transactions. |
| `message-anchoring.gas.max-fee-per-gas-cap` | `ULong` | no | `100000000000` | active | Cap on the EIP-1559 max fee per gas for anchoring transactions (wei). |
| `message-anchoring.l1-endpoint` | `URL?` | no | - | active | L1 endpoint used for anchoring. Falls back to defaults.l1-endpoint. Example: `http://l1-el-node:8545`. |
| `message-anchoring.l1-event-scraping.eth-logs-search-block-chunk-size` | `UInt` | no | `1000` | active | Number of blocks scanned per eth_getLogs chunk. |
| `message-anchoring.l1-event-scraping.eth-logs-search-max-block-range` | `UInt` | no | `10000` | active | Maximum block range covered by a single eth_getLogs search. |
| `message-anchoring.l1-event-scraping.eth-logs-search-success-backoff-delay` | `Duration` | no | `PT0.001S` | active | Backoff delay after a successful eth_getLogs search before the next one. |
| `message-anchoring.l1-event-scraping.polling-interval` | `Duration` | no | `PT6S` | active | Interval between L1 log polling attempts. |
| `message-anchoring.l1-event-scraping.polling-timeout` | `Duration` | no | `PT5S` | active | Timeout for each L1 log polling request. |
| `message-anchoring.l1-highest-block-tag` | `BlockParameter` | no | `FINALIZED` | active | L1 block tag up to which message events are read (e.g. FINALIZED, LATEST, or a number). |
| `message-anchoring.l1-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `message-anchoring.l1-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `message-anchoring.l1-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `message-anchoring.l1-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `message-anchoring.l1-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `message-anchoring.l2-endpoint` | `URL?` | no | - | active | L2 endpoint used for anchoring. Falls back to defaults.l2-endpoint. Example: `http://sequencer:8545`. |
| `message-anchoring.l2-highest-block-tag` | `BlockParameter` | no | `LATEST` | active | L2 block tag up to which anchoring state is read (e.g. LATEST, FINALIZED, or a number). |
| `message-anchoring.l2-request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `message-anchoring.l2-request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `message-anchoring.l2-request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `message-anchoring.l2-request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `message-anchoring.l2-request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `message-anchoring.max-messages-to-anchor-per-l2-transaction` | `UInt` | no | `100` | active | Maximum number of messages anchored in a single L2 transaction. |
| `message-anchoring.message-queue-capacity` | `UInt` | no | `10000` | active | Maximum number of messages buffered awaiting anchoring. |
| `message-anchoring.signer.custom.name` | `String` | yes | - | active | Logical signer name resolved by the injected signer factory. |
| `message-anchoring.signer.type` | `SignerType` | yes | - | active | Signer backend to use: WEB3J, WEB3SIGNER, or CUSTOM. Example: `web3signer`. |
| `message-anchoring.signer.web3j.private-key` | `Masked` | yes | - | active | Hex-encoded 32-byte private key used to sign transactions. Masked in logs. |
| `message-anchoring.signer.web3signer.endpoint` | `URL` | yes | - | active | Web3Signer HTTP endpoint. Example: `http://web3signer:9000`. |
| `message-anchoring.signer.web3signer.keep-alive` | `Boolean` | no | `true` | active | Whether to keep Web3Signer HTTP connections alive. |
| `message-anchoring.signer.web3signer.max-pool-size` | `Int` | no | `10` | active | Maximum size of the HTTP connection pool to Web3Signer. |
| `message-anchoring.signer.web3signer.public-key` | `ByteArray` | yes | - | active | Hex-encoded 64-byte public key whose corresponding key Web3Signer holds. |
| `message-anchoring.signer.web3signer.tls.key-store-password` | `Masked` | yes | - | active | Password for the client keystore. Masked in logs. |
| `message-anchoring.signer.web3signer.tls.key-store-path` | `Path` | yes | - | active | Path to the client keystore used for mutual TLS with Web3Signer. Example: `/etc/coordinator/keystore.p12`. |
| `message-anchoring.signer.web3signer.tls.trust-store-password` | `Masked` | yes | - | active | Password for the truststore. Masked in logs. |
| `message-anchoring.signer.web3signer.tls.trust-store-path` | `Path` | yes | - | active | Path to the truststore used to validate the Web3Signer certificate. Example: `/etc/coordinator/truststore.p12`. |

### `protocol`

Linea protocol contract addresses and genesis settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `protocol.genesis.genesis-shnarf` | `ByteArray` | yes | - | active | Genesis shnarf (starting shnarf) of the Linea chain (hex). Example: `0xc286ff42414401ccdc23ea8e738775378e8f6c6f7b2966eb2747798d45571b79`. |
| `protocol.genesis.genesis-state-root-hash` | `ByteArray` | yes | - | active | Genesis state root hash of the Linea chain (hex). Example: `0x01d9afcd495c870f3ae9d8362cd0257a7de2057055058183596719285cae6101`. |
| `protocol.l1.block-time` | `Duration` | no | `PT12S` | active | Average L1 block time, used for timing estimates. |
| `protocol.l1.contract-address` | `String` | yes | - | active | Address of the Linea rollup contract on L1. Example: `0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9`. |
| `protocol.l1.contract-deployment-block-number` | `ULong?` | no | - | active | L1 block number at which the rollup contract was deployed. Omit if not applicable. Example: `3`. |
| `protocol.l2.contract-address` | `String` | yes | - | active | Address of the Linea contract on L2. Example: `0xe537D669CA013d86EBeF1D64e40fC74CADC91987`. |
| `protocol.l2.contract-deployment-block-number` | `ULong?` | no | - | active | L2 block number at which the contract was deployed. Omit if not applicable. Example: `3`. |

### `prover`

File-based prover request/response directories and switch-over settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `prover.blob-compression.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.blob-compression.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.enable-request-files-cleanup` | `Boolean` | no | `false` | active | Whether to delete request files after their responses are processed. |
| `prover.execution.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.execution.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.fs-inprogress-proving-suffix-pattern` | `String` | no | `.inprogress.prover.*` | active | Regex matching filenames a prover has claimed and is working on, so the coordinator treats them as in-progress. |
| `prover.fs-inprogress-request-writing-suffix` | `String` | no | `.inprogress_coordinator_writing` | active | Filename suffix appended while the coordinator is still writing a request file, so provers ignore partially-written requests. |
| `prover.fs-polling-interval` | `Duration` | no | `PT15S` | active | Interval between scans of the prover response directories for new responses. |
| `prover.fs-polling-timeout` | `Duration` | no | `infinite` | active | Maximum time to wait for a prover response before timing out. Defaults to no timeout. |
| `prover.invalidity.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.invalidity.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.new.blob-compression.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.new.blob-compression.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.new.enable-request-files-cleanup` | `Boolean` | no | `false` | active | Whether to delete request files after their responses are processed. |
| `prover.new.execution.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.new.execution.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.new.fs-inprogress-proving-suffix-pattern` | `String` | no | `.inprogress.prover.*` | active | Regex matching filenames a prover has claimed and is working on, so the coordinator treats them as in-progress. |
| `prover.new.fs-inprogress-request-writing-suffix` | `String` | no | `.inprogress_coordinator_writing` | active | Filename suffix appended while the coordinator is still writing a request file, so provers ignore partially-written requests. |
| `prover.new.fs-polling-interval` | `Duration` | no | `PT15S` | active | Interval between scans of the prover response directories for new responses. |
| `prover.new.fs-polling-timeout` | `Duration` | no | `infinite` | active | Maximum time to wait for a prover response before timing out. Defaults to no timeout. |
| `prover.new.invalidity.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.new.invalidity.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.new.proof-aggregation.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.new.proof-aggregation.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.new.switch-block-number-inclusive` | `ULong?` | no | - | active | Inclusive L2 block number at which to switch from this prover to the `new` prover. Mutually exclusive with switchBlockTimestamp. Example: `1000000`. |
| `prover.new.switch-block-timestamp` | `Instant?` | no | - | active | Timestamp at which to switch from this prover to the `new` prover. Mutually exclusive with switchBlockNumberInclusive. Example: `2024-01-01T00:00:00Z`. |
| `prover.proof-aggregation.fs-requests-directory` | `String` | yes | - | active | Directory the coordinator writes prover request files to. Example: `/data/prover/v3/execution/requests`. |
| `prover.proof-aggregation.fs-responses-directory` | `String` | yes | - | active | Directory the coordinator reads prover response files from. Example: `/data/prover/v3/execution/responses`. |
| `prover.switch-block-number-inclusive` | `ULong?` | no | - | active | Inclusive L2 block number at which to switch from this prover to the `new` prover. Mutually exclusive with switchBlockTimestamp. Example: `1000000`. |
| `prover.switch-block-timestamp` | `Instant?` | no | - | active | Timestamp at which to switch from this prover to the `new` prover. Mutually exclusive with switchBlockNumberInclusive. Example: `2024-01-01T00:00:00Z`. |

### `state-manager`

Shomei state manager client settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `state-manager.endpoints` | `List&lt;URL&gt;` | yes | - | active | Shomei state manager JSON-RPC endpoints. Example: `["http://shomei:8888"]`. |
| `state-manager.request-limit-per-endpoint` | `UInt` | no | `4294967295` | active | Maximum number of concurrent in-flight requests per state manager endpoint. |
| `state-manager.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `state-manager.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `state-manager.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `state-manager.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `state-manager.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `state-manager.request-timeout` | `Duration?` | no | - | active | Timeout for each state manager request. Omit to disable the timeout. Example: `PT30S`. |

### `traces`

Trace generation (traces API / conflation counters) client settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `traces.conflation.endpoints` | `List&lt;URL&gt;?` | no | - | active | Endpoints for this specific traces client. Falls back to traces.endpoints when omitted. Example: `["http://traces-node:8545"]`. |
| `traces.conflation.request-limit-per-endpoint` | `UInt?` | no | - | active | Per-endpoint concurrent request limit for this client. Falls back to the shared value. Example: `4`. |
| `traces.conflation.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `traces.conflation.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `traces.conflation.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `traces.conflation.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `traces.conflation.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `traces.conflation.request-timeout` | `Duration?` | no | - | active | Request timeout for this client. Falls back to the shared value. Example: `PT30S`. |
| `traces.counters.endpoints` | `List&lt;URL&gt;?` | no | - | active | Endpoints for this specific traces client. Falls back to traces.endpoints when omitted. Example: `["http://traces-node:8545"]`. |
| `traces.counters.request-limit-per-endpoint` | `UInt?` | no | - | active | Per-endpoint concurrent request limit for this client. Falls back to the shared value. Example: `4`. |
| `traces.counters.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `traces.counters.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `traces.counters.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `traces.counters.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `traces.counters.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `traces.counters.request-timeout` | `Duration?` | no | - | active | Request timeout for this client. Falls back to the shared value. Example: `PT30S`. |
| `traces.endpoints` | `List&lt;URL&gt;?` | no | - | active | Traces generator endpoints shared by the counters and conflation clients. Required unless both counters.endpoints and conflation.endpoints are set. Example: `["http://traces-node:8545"]`. |
| `traces.ignore-traces-generator-errors` | `Boolean` | no | `false` | active | Whether to continue despite traces generator errors instead of failing. |
| `traces.new.conflation.endpoints` | `List&lt;URL&gt;?` | no | - | active | Endpoints for this specific traces client. Falls back to traces.endpoints when omitted. Example: `["http://traces-node:8545"]`. |
| `traces.new.conflation.request-limit-per-endpoint` | `UInt?` | no | - | active | Per-endpoint concurrent request limit for this client. Falls back to the shared value. Example: `4`. |
| `traces.new.conflation.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `traces.new.conflation.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `traces.new.conflation.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `traces.new.conflation.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `traces.new.conflation.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `traces.new.conflation.request-timeout` | `Duration?` | no | - | active | Request timeout for this client. Falls back to the shared value. Example: `PT30S`. |
| `traces.new.counters.endpoints` | `List&lt;URL&gt;?` | no | - | active | Endpoints for this specific traces client. Falls back to traces.endpoints when omitted. Example: `["http://traces-node:8545"]`. |
| `traces.new.counters.request-limit-per-endpoint` | `UInt?` | no | - | active | Per-endpoint concurrent request limit for this client. Falls back to the shared value. Example: `4`. |
| `traces.new.counters.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `traces.new.counters.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `traces.new.counters.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `traces.new.counters.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `traces.new.counters.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `traces.new.counters.request-timeout` | `Duration?` | no | - | active | Request timeout for this client. Falls back to the shared value. Example: `PT30S`. |
| `traces.new.endpoints` | `List&lt;URL&gt;?` | no | - | active | Traces generator endpoints shared by the counters and conflation clients. Required unless both counters.endpoints and conflation.endpoints are set. Example: `["http://traces-node:8545"]`. |
| `traces.new.ignore-traces-generator-errors` | `Boolean` | no | `false` | active | Whether to continue despite traces generator errors instead of failing. |
| `traces.new.request-limit-per-endpoint` | `UInt` | no | `4294967295` | active | Maximum number of concurrent in-flight requests per traces endpoint. |
| `traces.new.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `traces.new.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `traces.new.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `traces.new.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `traces.new.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `traces.new.request-timeout` | `Duration?` | no | - | active | Timeout for each traces generator request. Omit to disable the timeout. Example: `PT30S`. |
| `traces.new.switch-block-number-inclusive` | `UInt?` | no | - | active | Inclusive L2 block number at which to switch from this traces config to the `new` one. Example: `1000000`. |
| `traces.request-limit-per-endpoint` | `UInt` | no | `4294967295` | active | Maximum number of concurrent in-flight requests per traces endpoint. |
| `traces.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `traces.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `traces.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `traces.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `traces.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |
| `traces.request-timeout` | `Duration?` | no | - | active | Timeout for each traces generator request. Omit to disable the timeout. Example: `PT30S`. |
| `traces.switch-block-number-inclusive` | `UInt?` | no | - | active | Inclusive L2 block number at which to switch from this traces config to the `new` one. Example: `1000000`. |

### `type2-state-proof-provider`

Type-2 state proof provider (shnarf/state proof) settings.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `type2-state-proof-provider.disabled` | `Boolean` | no | `false` | active | Whether the type-2 state proof provider is disabled. |
| `type2-state-proof-provider.endpoints` | `List&lt;URL&gt;` | yes | - | active | Type-2 state proof provider JSON-RPC endpoints. Example: `["http://shomei-frontend:8888"]`. |
| `type2-state-proof-provider.l1-polling-interval` | `Duration` | no | `PT6S` | active | Interval between L1 polls for state proof updates. |
| `type2-state-proof-provider.l1-query-block-tag` | `Tag` | no | `FINALIZED` | active | L1 block tag queried for state proofs (e.g. FINALIZED, LATEST). |
| `type2-state-proof-provider.request-retries.backoff-delay` | `Duration` | no | `PT1S` | active | Delay between retry attempts. Example: `PT1S`. |
| `type2-state-proof-provider.request-retries.failures-warning-threshold` | `UInt?` | no | - | active | Number of consecutive failures after which warning logs start being emitted. Omit to use the default threshold. Example: `3`. |
| `type2-state-proof-provider.request-retries.ignore-first-exceptions-until-time-elapsed` | `Duration?` | no | - | active | Grace period during which initial failures are ignored (not logged/counted) before retries are treated as errors. Omit to disable. Example: `PT5S`. |
| `type2-state-proof-provider.request-retries.max-retries` | `UInt?` | no | - | active | Maximum number of retry attempts. Omit for endless retries. Example: `3`. |
| `type2-state-proof-provider.request-retries.timeout` | `Duration?` | no | - | active | Overall timeout across all retry attempts. Omit to disable the timeout. Example: `PT10S`. |

## traces-limits-v4

Per-module trace counter limits for v4 tracing modules.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `traces-limits` | `Map&lt;TracingModuleV4, UInt&gt;` | yes | - | active | Per-module trace counter limits (v4 tracing modules). Each entry maps a tracing module name to its maximum trace count. |

## traces-limits-v5

Per-module trace counter limits for v5 tracing modules.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `traces-limits` | `Map&lt;TracingModuleV5, UInt&gt;` | yes | - | active | Per-module trace counter limits (v5 tracing modules). Each entry maps a tracing module name to its maximum trace count. |

## gas-price-cap-time-of-day-multipliers

L1 dynamic gas price cap time-of-day multipliers.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `gas-price-cap-time-of-day-multipliers` | `Map&lt;String, Double&gt;` | yes | - | active | L1 dynamic gas price cap multipliers keyed by time-of-day/day-of-week slot; each entry scales the base gas price cap for that slot. |

## smart-contract-errors

Mapping of Linea smart-contract revert error codes to messages.

| Key | Type | Required | Default | Status | Description |
| --- | --- | --- | --- | --- | --- |
| `smart-contract-errors` | `Map&lt;String, String&gt;` | yes | - | active | Mapping of Linea smart-contract revert error codes to human-readable messages, used to decode on-chain rejection reasons. |

## Deprecated Keys

None.
