Last batch number before a forkid change (fork upgrade). That implies that greater batch numbers are going to be trusted but no virtualized neither verified. So after the batch number ForkUpgradeBatchNumber is virtualized and verified you could update the system (SC,...) to new forkId and remove this value to allow the system to keep Virtualizing and verifying the new batchs. Check issue #2236 to known more This value overwrite SequenceSender.ForkUpgradeBatchNumber
Environment defining the log format ("production" or "development"). In development mode enables development mode (which makes DPanicLevel logs panic), uses a console encoder, writes to standard error, and disables sampling. Stacktraces are automatically included on logs of WarnLevel and above. Check here
TraceBatchUseHTTPS enables, in the debugtraceBatchByNum endpoint, the use of the HTTPS protocol (instead of HTTP) to do the parallel requests to RPC.debugtraceTransaction endpoint
Configuration of service `Syncrhonizer`. For this service is also really important the value of `IsTrustedSequencer` because depending of this values is going to ask to a trusted node for trusted transactions or not
StopSequencerOnBatchNum specifies the batch number where the Sequencer will stop to process more transactions and generate new batches. The Sequencer will halt after it closes the batch equal to this number
MaxTxSizeForL1 is the maximum size a single transaction can have. This field has non-trivial consequences: larger transactions than 128KB are significantly harder and more expensive to propagate; larger transactions also take more resources to validate whether they fit into the pool or not.
RetryTime is the time the aggregator main loop sleeps if there are no proofs to aggregate or batches to generate proofs. It is also used in the isSynced loop
TxProfitabilityCheckerType type for checking is it profitable for aggregator to validate batch possible values: base/acceptall
TxProfitabilityMinReward min reward for base tx profitability checker when aggregator will validate batch this parameter is used for the base tx profitability checker
GeneratingProofCleanupThreshold represents the time interval after which a proof in generating state is considered to be stuck and allowed to be cleared.
Configuration of the genesis of the network. This is used to known the initial state of the network
MaxConns is the maximum number of connections in the pool.
\ No newline at end of file
diff --git a/docs/config-file/node-config-doc.md b/docs/config-file/node-config-doc.md
new file mode 100644
index 0000000000..69c8f8bb43
--- /dev/null
+++ b/docs/config-file/node-config-doc.md
@@ -0,0 +1,3089 @@
+# Schema Docs
+
+**Type:** : `object`
+**Description:** Config represents the configuration of the entire Hermez Node The file is TOML format You could find some examples:
+
+[TOML format]: https://en.wikipedia.org/wiki/TOML
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| - [IsTrustedSequencer](#IsTrustedSequencer ) | No | boolean | No | - | This define is a trusted node (\`true\`) or a permission less (\`false\`). If you don't known set to \`false\` |
+| - [ForkUpgradeBatchNumber](#ForkUpgradeBatchNumber ) | No | integer | No | - | Last batch number before a forkid change (fork upgrade). That implies that greater batch numbers are going to be trusted but no virtualized neither verified. So after the batch number \`ForkUpgradeBatchNumber\` is virtualized and verified you could update the system (SC,...) to new forkId and remove this value to allow the system to keep Virtualizing and verifying the new batchs. Check issue [#2236](https://github.com/0xPolygonHermez/zkevm-node/issues/2236) to known more This value overwrite \`SequenceSender.ForkUpgradeBatchNumber\` |
+| - [ForkUpgradeNewForkId](#ForkUpgradeNewForkId ) | No | integer | No | - | Which is the new forkId |
+| - [Log](#Log ) | No | object | No | - | Configure Log level for all the services, allow also to store the logs in a file |
+| - [Etherman](#Etherman ) | No | object | No | - | Configuration of the etherman (client for access L1) |
+| - [EthTxManager](#EthTxManager ) | No | object | No | - | Configuration for ethereum transaction manager |
+| - [Pool](#Pool ) | No | object | No | - | Pool service configuration |
+| - [RPC](#RPC ) | No | object | No | - | Configuration for RPC service. THis one offers a extended Ethereum JSON-RPC API interface to interact with the node |
+| - [Synchronizer](#Synchronizer ) | No | object | No | - | Configuration of service \`Syncrhonizer\`. For this service is also really important the value of \`IsTrustedSequencer\` because depending of this values is going to ask to a trusted node for trusted transactions or not |
+| - [Sequencer](#Sequencer ) | No | object | No | - | Configuration of the sequencer service |
+| - [SequenceSender](#SequenceSender ) | No | object | No | - | Configuration of the sequence sender service |
+| - [Aggregator](#Aggregator ) | No | object | No | - | Configuration of the aggregator service |
+| - [NetworkConfig](#NetworkConfig ) | No | object | No | - | Configuration of the genesis of the network. This is used to known the initial state of the network |
+| - [L2GasPriceSuggester](#L2GasPriceSuggester ) | No | object | No | - | Configuration of the gas price suggester service |
+| - [Executor](#Executor ) | No | object | No | - | Configuration of the executor service |
+| - [MTClient](#MTClient ) | No | object | No | - | Configuration of the merkle tree client service. Not use in the node, only for testing |
+| - [StateDB](#StateDB ) | No | object | No | - | Configuration of the state database connection |
+| - [Metrics](#Metrics ) | No | object | No | - | Configuration of the metrics service, basically is where is going to publish the metrics |
+| - [EventLog](#EventLog ) | No | object | No | - | Configuration of the event database connection |
+| - [HashDB](#HashDB ) | No | object | No | - | Configuration of the hash database connection |
+
+## 1. `IsTrustedSequencer`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** This define is a trusted node (`true`) or a permission less (`false`). If you don't known
+set to `false`
+
+**Example setting the default value** (false):
+```
+IsTrustedSequencer=false
+```
+
+## 2. `ForkUpgradeBatchNumber`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** Last batch number before a forkid change (fork upgrade). That implies that
+greater batch numbers are going to be trusted but no virtualized neither verified.
+So after the batch number `ForkUpgradeBatchNumber` is virtualized and verified you could update
+the system (SC,...) to new forkId and remove this value to allow the system to keep
+Virtualizing and verifying the new batchs.
+Check issue [#2236](https://github.com/0xPolygonHermez/zkevm-node/issues/2236) to known more
+This value overwrite `SequenceSender.ForkUpgradeBatchNumber`
+
+**Example setting the default value** (0):
+```
+ForkUpgradeBatchNumber=0
+```
+
+## 3. `ForkUpgradeNewForkId`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** Which is the new forkId
+
+**Example setting the default value** (0):
+```
+ForkUpgradeNewForkId=0
+```
+
+## 4. `[Log]`
+
+**Type:** : `object`
+**Description:** Configure Log level for all the services, allow also to store the logs in a file
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------- | ------- | ---------------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| - [Environment](#Log_Environment ) | No | enum (of string) | No | - | Environment defining the log format ("production" or "development"). In development mode enables development mode (which makes DPanicLevel logs panic), uses a console encoder, writes to standard error, and disables sampling. Stacktraces are automatically included on logs of WarnLevel and above. Check [here](https://pkg.go.dev/go.uber.org/zap@v1.24.0#NewDevelopmentConfig) |
+| - [Level](#Log_Level ) | No | enum (of string) | No | - | Level of log. As lower value more logs are going to be generated |
+| - [Outputs](#Log_Outputs ) | No | array of string | No | - | Outputs |
+
+### 4.1. `Log.Environment`
+
+**Type:** : `enum (of string)`
+
+**Default:** `"development"`
+
+**Description:** Environment defining the log format ("production" or "development").
+In development mode enables development mode (which makes DPanicLevel logs panic), uses a console encoder, writes to standard error, and disables sampling. Stacktraces are automatically included on logs of WarnLevel and above.
+Check [here](https://pkg.go.dev/go.uber.org/zap@v1.24.0#NewDevelopmentConfig)
+
+**Example setting the default value** ("development"):
+```
+[Log]
+Environment="development"
+```
+
+Must be one of:
+* "production"
+* "development"
+
+### 4.2. `Log.Level`
+
+**Type:** : `enum (of string)`
+
+**Default:** `"info"`
+
+**Description:** Level of log. As lower value more logs are going to be generated
+
+**Example setting the default value** ("info"):
+```
+[Log]
+Level="info"
+```
+
+Must be one of:
+* "debug"
+* "info"
+* "warn"
+* "error"
+* "dpanic"
+* "panic"
+* "fatal"
+
+### 4.3. `Log.Outputs`
+
+**Type:** : `array of string`
+
+**Default:** `["stderr"]`
+
+**Description:** Outputs
+
+**Example setting the default value** (["stderr"]):
+```
+[Log]
+Outputs=["stderr"]
+```
+
+## 5. `[Etherman]`
+
+**Type:** : `object`
+**Description:** Configuration of the etherman (client for access L1)
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------- | ------- | ------- | ---------- | ---------- | --------------------------------------------------------------------------------------- |
+| - [URL](#Etherman_URL ) | No | string | No | - | URL is the URL of the Ethereum node for L1 |
+| - [MultiGasProvider](#Etherman_MultiGasProvider ) | No | boolean | No | - | allow that L1 gas price calculation use multiples sources |
+| - [Etherscan](#Etherman_Etherscan ) | No | object | No | - | Configuration for use Etherscan as used as gas provider, basically it needs the API-KEY |
+
+### 5.1. `Etherman.URL`
+
+**Type:** : `string`
+
+**Default:** `"http://localhost:8545"`
+
+**Description:** URL is the URL of the Ethereum node for L1
+
+**Example setting the default value** ("http://localhost:8545"):
+```
+[Etherman]
+URL="http://localhost:8545"
+```
+
+### 5.2. `Etherman.MultiGasProvider`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** allow that L1 gas price calculation use multiples sources
+
+**Example setting the default value** (false):
+```
+[Etherman]
+MultiGasProvider=false
+```
+
+### 5.3. `[Etherman.Etherscan]`
+
+**Type:** : `object`
+**Description:** Configuration for use Etherscan as used as gas provider, basically it needs the API-KEY
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------- |
+| - [ApiKey](#Etherman_Etherscan_ApiKey ) | No | string | No | - | Need API key to use etherscan, if it's empty etherscan is not used |
+| - [Url](#Etherman_Etherscan_Url ) | No | string | No | - | URL of the etherscan API. Overwritten with a hardcoded URL: "https://api.etherscan.io/api?module=gastracker&action=gasoracle&apikey=" |
+
+#### 5.3.1. `Etherman.Etherscan.ApiKey`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** Need API key to use etherscan, if it's empty etherscan is not used
+
+**Example setting the default value** (""):
+```
+[Etherman.Etherscan]
+ApiKey=""
+```
+
+#### 5.3.2. `Etherman.Etherscan.Url`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** URL of the etherscan API. Overwritten with a hardcoded URL: "https://api.etherscan.io/api?module=gastracker&action=gasoracle&apikey="
+
+**Example setting the default value** (""):
+```
+[Etherman.Etherscan]
+Url=""
+```
+
+## 6. `[EthTxManager]`
+
+**Type:** : `object`
+**Description:** Configuration for ethereum transaction manager
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------------------------------------------------- | ------- | --------------- | ---------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------- |
+| - [FrequencyToMonitorTxs](#EthTxManager_FrequencyToMonitorTxs ) | No | string | No | - | Duration |
+| - [WaitTxToBeMined](#EthTxManager_WaitTxToBeMined ) | No | string | No | - | Duration |
+| - [PrivateKeys](#EthTxManager_PrivateKeys ) | No | array of object | No | - | PrivateKeys defines all the key store files that are going to be read in order to provide the private keys to sign the L1 txs |
+| - [ForcedGas](#EthTxManager_ForcedGas ) | No | integer | No | - | ForcedGas is the amount of gas to be forced in case of gas estimation error |
+
+### 6.1. `EthTxManager.FrequencyToMonitorTxs`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1s"`
+
+**Description:** FrequencyToMonitorTxs frequency of the resending failed txs
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1s"):
+```
+[EthTxManager]
+FrequencyToMonitorTxs="1s"
+```
+
+### 6.2. `EthTxManager.WaitTxToBeMined`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"2m0s"`
+
+**Description:** WaitTxToBeMined time to wait after transaction was sent to the ethereum
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("2m0s"):
+```
+[EthTxManager]
+WaitTxToBeMined="2m0s"
+```
+
+### 6.3. `EthTxManager.PrivateKeys`
+
+**Type:** : `array of object`
+**Description:** PrivateKeys defines all the key store files that are going
+to be read in order to provide the private keys to sign the L1 txs
+
+| | Array restrictions |
+| -------------------- | ------------------ |
+| **Min items** | N/A |
+| **Max items** | N/A |
+| **Items unicity** | False |
+| **Additional items** | False |
+| **Tuple validation** | See below |
+
+| Each item of this array must be | Description |
+| ---------------------------------------------------- | ------------------------------------------------------------------------------------ |
+| [PrivateKeys items](#EthTxManager_PrivateKeys_items) | KeystoreFileConfig has all the information needed to load a private key from a k ... |
+
+#### 6.3.1. [EthTxManager.PrivateKeys.PrivateKeys items]
+
+**Type:** : `object`
+**Description:** KeystoreFileConfig has all the information needed to load a private key from a key store file
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------ |
+| - [Path](#EthTxManager_PrivateKeys_items_Path ) | No | string | No | - | Path is the file path for the key store file |
+| - [Password](#EthTxManager_PrivateKeys_items_Password ) | No | string | No | - | Password is the password to decrypt the key store file |
+
+##### 6.3.1.1. `EthTxManager.PrivateKeys.PrivateKeys items.Path`
+
+**Type:** : `string`
+**Description:** Path is the file path for the key store file
+
+##### 6.3.1.2. `EthTxManager.PrivateKeys.PrivateKeys items.Password`
+
+**Type:** : `string`
+**Description:** Password is the password to decrypt the key store file
+
+### 6.4. `EthTxManager.ForcedGas`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** ForcedGas is the amount of gas to be forced in case of gas estimation error
+
+**Example setting the default value** (0):
+```
+[EthTxManager]
+ForcedGas=0
+```
+
+## 7. `[Pool]`
+
+**Type:** : `object`
+**Description:** Pool service configuration
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------------------------------------------------- |
+| - [IntervalToRefreshBlockedAddresses](#Pool_IntervalToRefreshBlockedAddresses ) | No | string | No | - | Duration |
+| - [IntervalToRefreshGasPrices](#Pool_IntervalToRefreshGasPrices ) | No | string | No | - | Duration |
+| - [MaxTxBytesSize](#Pool_MaxTxBytesSize ) | No | integer | No | - | MaxTxBytesSize is the max size of a transaction in bytes |
+| - [MaxTxDataBytesSize](#Pool_MaxTxDataBytesSize ) | No | integer | No | - | MaxTxDataBytesSize is the max size of the data field of a transaction in bytes |
+| - [DB](#Pool_DB ) | No | object | No | - | DB is the database configuration |
+| - [DefaultMinGasPriceAllowed](#Pool_DefaultMinGasPriceAllowed ) | No | integer | No | - | DefaultMinGasPriceAllowed is the default min gas price to suggest |
+| - [MinAllowedGasPriceInterval](#Pool_MinAllowedGasPriceInterval ) | No | string | No | - | Duration |
+| - [PollMinAllowedGasPriceInterval](#Pool_PollMinAllowedGasPriceInterval ) | No | string | No | - | Duration |
+| - [AccountQueue](#Pool_AccountQueue ) | No | integer | No | - | AccountQueue represents the maximum number of non-executable transaction slots permitted per account |
+| - [GlobalQueue](#Pool_GlobalQueue ) | No | integer | No | - | GlobalQueue represents the maximum number of non-executable transaction slots for all accounts |
+
+### 7.1. `Pool.IntervalToRefreshBlockedAddresses`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5m0s"`
+
+**Description:** IntervalToRefreshBlockedAddresses is the time it takes to sync the
+blocked address list from db to memory
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5m0s"):
+```
+[Pool]
+IntervalToRefreshBlockedAddresses="5m0s"
+```
+
+### 7.2. `Pool.IntervalToRefreshGasPrices`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5s"`
+
+**Description:** IntervalToRefreshGasPrices is the time to wait to refresh the gas prices
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5s"):
+```
+[Pool]
+IntervalToRefreshGasPrices="5s"
+```
+
+### 7.3. `Pool.MaxTxBytesSize`
+
+**Type:** : `integer`
+
+**Default:** `100132`
+
+**Description:** MaxTxBytesSize is the max size of a transaction in bytes
+
+**Example setting the default value** (100132):
+```
+[Pool]
+MaxTxBytesSize=100132
+```
+
+### 7.4. `Pool.MaxTxDataBytesSize`
+
+**Type:** : `integer`
+
+**Default:** `100000`
+
+**Description:** MaxTxDataBytesSize is the max size of the data field of a transaction in bytes
+
+**Example setting the default value** (100000):
+```
+[Pool]
+MaxTxDataBytesSize=100000
+```
+
+### 7.5. `[Pool.DB]`
+
+**Type:** : `object`
+**Description:** DB is the database configuration
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------- |
+| - [Name](#Pool_DB_Name ) | No | string | No | - | Database name |
+| - [User](#Pool_DB_User ) | No | string | No | - | Database User name |
+| - [Password](#Pool_DB_Password ) | No | string | No | - | Database Password of the user |
+| - [Host](#Pool_DB_Host ) | No | string | No | - | Host address of database |
+| - [Port](#Pool_DB_Port ) | No | string | No | - | Port Number of database |
+| - [EnableLog](#Pool_DB_EnableLog ) | No | boolean | No | - | EnableLog |
+| - [MaxConns](#Pool_DB_MaxConns ) | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
+
+#### 7.5.1. `Pool.DB.Name`
+
+**Type:** : `string`
+
+**Default:** `"pool_db"`
+
+**Description:** Database name
+
+**Example setting the default value** ("pool_db"):
+```
+[Pool.DB]
+Name="pool_db"
+```
+
+#### 7.5.2. `Pool.DB.User`
+
+**Type:** : `string`
+
+**Default:** `"pool_user"`
+
+**Description:** Database User name
+
+**Example setting the default value** ("pool_user"):
+```
+[Pool.DB]
+User="pool_user"
+```
+
+#### 7.5.3. `Pool.DB.Password`
+
+**Type:** : `string`
+
+**Default:** `"pool_password"`
+
+**Description:** Database Password of the user
+
+**Example setting the default value** ("pool_password"):
+```
+[Pool.DB]
+Password="pool_password"
+```
+
+#### 7.5.4. `Pool.DB.Host`
+
+**Type:** : `string`
+
+**Default:** `"zkevm-pool-db"`
+
+**Description:** Host address of database
+
+**Example setting the default value** ("zkevm-pool-db"):
+```
+[Pool.DB]
+Host="zkevm-pool-db"
+```
+
+#### 7.5.5. `Pool.DB.Port`
+
+**Type:** : `string`
+
+**Default:** `"5432"`
+
+**Description:** Port Number of database
+
+**Example setting the default value** ("5432"):
+```
+[Pool.DB]
+Port="5432"
+```
+
+#### 7.5.6. `Pool.DB.EnableLog`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** EnableLog
+
+**Example setting the default value** (false):
+```
+[Pool.DB]
+EnableLog=false
+```
+
+#### 7.5.7. `Pool.DB.MaxConns`
+
+**Type:** : `integer`
+
+**Default:** `200`
+
+**Description:** MaxConns is the maximum number of connections in the pool.
+
+**Example setting the default value** (200):
+```
+[Pool.DB]
+MaxConns=200
+```
+
+### 7.6. `Pool.DefaultMinGasPriceAllowed`
+
+**Type:** : `integer`
+
+**Default:** `1000000000`
+
+**Description:** DefaultMinGasPriceAllowed is the default min gas price to suggest
+
+**Example setting the default value** (1000000000):
+```
+[Pool]
+DefaultMinGasPriceAllowed=1000000000
+```
+
+### 7.7. `Pool.MinAllowedGasPriceInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5m0s"`
+
+**Description:** MinAllowedGasPriceInterval is the interval to look back of the suggested min gas price for a tx
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5m0s"):
+```
+[Pool]
+MinAllowedGasPriceInterval="5m0s"
+```
+
+### 7.8. `Pool.PollMinAllowedGasPriceInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"15s"`
+
+**Description:** PollMinAllowedGasPriceInterval is the interval to poll the suggested min gas price for a tx
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("15s"):
+```
+[Pool]
+PollMinAllowedGasPriceInterval="15s"
+```
+
+### 7.9. `Pool.AccountQueue`
+
+**Type:** : `integer`
+
+**Default:** `64`
+
+**Description:** AccountQueue represents the maximum number of non-executable transaction slots permitted per account
+
+**Example setting the default value** (64):
+```
+[Pool]
+AccountQueue=64
+```
+
+### 7.10. `Pool.GlobalQueue`
+
+**Type:** : `integer`
+
+**Default:** `1024`
+
+**Description:** GlobalQueue represents the maximum number of non-executable transaction slots for all accounts
+
+**Example setting the default value** (1024):
+```
+[Pool]
+GlobalQueue=1024
+```
+
+## 8. `[RPC]`
+
+**Type:** : `object`
+**Description:** Configuration for RPC service. THis one offers a extended Ethereum JSON-RPC API interface to interact with the node
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| - [Host](#RPC_Host ) | No | string | No | - | Host defines the network adapter that will be used to serve the HTTP requests |
+| - [Port](#RPC_Port ) | No | integer | No | - | Port defines the port to serve the endpoints via HTTP |
+| - [ReadTimeout](#RPC_ReadTimeout ) | No | string | No | - | Duration |
+| - [WriteTimeout](#RPC_WriteTimeout ) | No | string | No | - | Duration |
+| - [MaxRequestsPerIPAndSecond](#RPC_MaxRequestsPerIPAndSecond ) | No | number | No | - | MaxRequestsPerIPAndSecond defines how much requests a single IP can send within a single second |
+| - [SequencerNodeURI](#RPC_SequencerNodeURI ) | No | string | No | - | SequencerNodeURI is used allow Non-Sequencer nodes to relay transactions to the Sequencer node |
+| - [MaxCumulativeGasUsed](#RPC_MaxCumulativeGasUsed ) | No | integer | No | - | MaxCumulativeGasUsed is the max gas allowed per batch |
+| - [WebSockets](#RPC_WebSockets ) | No | object | No | - | WebSockets configuration |
+| - [EnableL2SuggestedGasPricePolling](#RPC_EnableL2SuggestedGasPricePolling ) | No | boolean | No | - | EnableL2SuggestedGasPricePolling enables polling of the L2 gas price to block tx in the RPC with lower gas price. |
+| - [TraceBatchUseHTTPS](#RPC_TraceBatchUseHTTPS ) | No | boolean | No | - | TraceBatchUseHTTPS enables, in the debug_traceBatchByNum endpoint, the use of the HTTPS protocol (instead of HTTP) to do the parallel requests to RPC.debug_traceTransaction endpoint |
+
+### 8.1. `RPC.Host`
+
+**Type:** : `string`
+
+**Default:** `"0.0.0.0"`
+
+**Description:** Host defines the network adapter that will be used to serve the HTTP requests
+
+**Example setting the default value** ("0.0.0.0"):
+```
+[RPC]
+Host="0.0.0.0"
+```
+
+### 8.2. `RPC.Port`
+
+**Type:** : `integer`
+
+**Default:** `8545`
+
+**Description:** Port defines the port to serve the endpoints via HTTP
+
+**Example setting the default value** (8545):
+```
+[RPC]
+Port=8545
+```
+
+### 8.3. `RPC.ReadTimeout`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1m0s"`
+
+**Description:** ReadTimeout is the HTTP server read timeout
+check net/http.server.ReadTimeout and net/http.server.ReadHeaderTimeout
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1m0s"):
+```
+[RPC]
+ReadTimeout="1m0s"
+```
+
+### 8.4. `RPC.WriteTimeout`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1m0s"`
+
+**Description:** WriteTimeout is the HTTP server write timeout
+check net/http.server.WriteTimeout
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1m0s"):
+```
+[RPC]
+WriteTimeout="1m0s"
+```
+
+### 8.5. `RPC.MaxRequestsPerIPAndSecond`
+
+**Type:** : `number`
+
+**Default:** `500`
+
+**Description:** MaxRequestsPerIPAndSecond defines how much requests a single IP can
+send within a single second
+
+**Example setting the default value** (500):
+```
+[RPC]
+MaxRequestsPerIPAndSecond=500
+```
+
+### 8.6. `RPC.SequencerNodeURI`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** SequencerNodeURI is used allow Non-Sequencer nodes
+to relay transactions to the Sequencer node
+
+**Example setting the default value** (""):
+```
+[RPC]
+SequencerNodeURI=""
+```
+
+### 8.7. `RPC.MaxCumulativeGasUsed`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** MaxCumulativeGasUsed is the max gas allowed per batch
+
+**Example setting the default value** (0):
+```
+[RPC]
+MaxCumulativeGasUsed=0
+```
+
+### 8.8. `[RPC.WebSockets]`
+
+**Type:** : `object`
+**Description:** WebSockets configuration
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------- | ------- | ------- | ---------- | ---------- | --------------------------------------------------------------------------- |
+| - [Enabled](#RPC_WebSockets_Enabled ) | No | boolean | No | - | Enabled defines if the WebSocket requests are enabled or disabled |
+| - [Host](#RPC_WebSockets_Host ) | No | string | No | - | Host defines the network adapter that will be used to serve the WS requests |
+| - [Port](#RPC_WebSockets_Port ) | No | integer | No | - | Port defines the port to serve the endpoints via WS |
+
+#### 8.8.1. `RPC.WebSockets.Enabled`
+
+**Type:** : `boolean`
+
+**Default:** `true`
+
+**Description:** Enabled defines if the WebSocket requests are enabled or disabled
+
+**Example setting the default value** (true):
+```
+[RPC.WebSockets]
+Enabled=true
+```
+
+#### 8.8.2. `RPC.WebSockets.Host`
+
+**Type:** : `string`
+
+**Default:** `"0.0.0.0"`
+
+**Description:** Host defines the network adapter that will be used to serve the WS requests
+
+**Example setting the default value** ("0.0.0.0"):
+```
+[RPC.WebSockets]
+Host="0.0.0.0"
+```
+
+#### 8.8.3. `RPC.WebSockets.Port`
+
+**Type:** : `integer`
+
+**Default:** `8546`
+
+**Description:** Port defines the port to serve the endpoints via WS
+
+**Example setting the default value** (8546):
+```
+[RPC.WebSockets]
+Port=8546
+```
+
+### 8.9. `RPC.EnableL2SuggestedGasPricePolling`
+
+**Type:** : `boolean`
+
+**Default:** `true`
+
+**Description:** EnableL2SuggestedGasPricePolling enables polling of the L2 gas price to block tx in the RPC with lower gas price.
+
+**Example setting the default value** (true):
+```
+[RPC]
+EnableL2SuggestedGasPricePolling=true
+```
+
+### 8.10. `RPC.TraceBatchUseHTTPS`
+
+**Type:** : `boolean`
+
+**Default:** `true`
+
+**Description:** TraceBatchUseHTTPS enables, in the debug_traceBatchByNum endpoint, the use of the HTTPS protocol (instead of HTTP)
+to do the parallel requests to RPC.debug_traceTransaction endpoint
+
+**Example setting the default value** (true):
+```
+[RPC]
+TraceBatchUseHTTPS=true
+```
+
+## 9. `[Synchronizer]`
+
+**Type:** : `object`
+**Description:** Configuration of service `Syncrhonizer`. For this service is also really important the value of `IsTrustedSequencer`
+because depending of this values is going to ask to a trusted node for trusted transactions or not
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ----------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ------------------------------------------------------------------------ |
+| - [SyncInterval](#Synchronizer_SyncInterval ) | No | string | No | - | Duration |
+| - [SyncChunkSize](#Synchronizer_SyncChunkSize ) | No | integer | No | - | SyncChunkSize is the number of blocks to sync on each chunk |
+| - [TrustedSequencerURL](#Synchronizer_TrustedSequencerURL ) | No | string | No | - | TrustedSequencerURL is the rpc url to connect and sync the trusted state |
+
+### 9.1. `Synchronizer.SyncInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1s"`
+
+**Description:** SyncInterval is the delay interval between reading new rollup information
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1s"):
+```
+[Synchronizer]
+SyncInterval="1s"
+```
+
+### 9.2. `Synchronizer.SyncChunkSize`
+
+**Type:** : `integer`
+
+**Default:** `100`
+
+**Description:** SyncChunkSize is the number of blocks to sync on each chunk
+
+**Example setting the default value** (100):
+```
+[Synchronizer]
+SyncChunkSize=100
+```
+
+### 9.3. `Synchronizer.TrustedSequencerURL`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** TrustedSequencerURL is the rpc url to connect and sync the trusted state
+
+**Example setting the default value** (""):
+```
+[Synchronizer]
+TrustedSequencerURL=""
+```
+
+## 10. `[Sequencer]`
+
+**Type:** : `object`
+**Description:** Configuration of the sequencer service
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
+| - [WaitPeriodPoolIsEmpty](#Sequencer_WaitPeriodPoolIsEmpty ) | No | string | No | - | Duration |
+| - [BlocksAmountForTxsToBeDeleted](#Sequencer_BlocksAmountForTxsToBeDeleted ) | No | integer | No | - | BlocksAmountForTxsToBeDeleted is blocks amount after which txs will be deleted from the pool |
+| - [FrequencyToCheckTxsForDelete](#Sequencer_FrequencyToCheckTxsForDelete ) | No | string | No | - | Duration |
+| - [MaxTxsPerBatch](#Sequencer_MaxTxsPerBatch ) | No | integer | No | - | MaxTxsPerBatch is the maximum amount of transactions in the batch |
+| - [MaxBatchBytesSize](#Sequencer_MaxBatchBytesSize ) | No | integer | No | - | MaxBatchBytesSize is the maximum batch size in bytes (subtracted bits of all types.Sequence fields excluding BatchL2Data from MaxTxSizeForL1) |
+| - [MaxCumulativeGasUsed](#Sequencer_MaxCumulativeGasUsed ) | No | integer | No | - | MaxCumulativeGasUsed is max gas amount used by batch |
+| - [MaxKeccakHashes](#Sequencer_MaxKeccakHashes ) | No | integer | No | - | MaxKeccakHashes is max keccak hashes used by batch |
+| - [MaxPoseidonHashes](#Sequencer_MaxPoseidonHashes ) | No | integer | No | - | MaxPoseidonHashes is max poseidon hashes batch can handle |
+| - [MaxPoseidonPaddings](#Sequencer_MaxPoseidonPaddings ) | No | integer | No | - | MaxPoseidonPaddings is max poseidon paddings batch can handle |
+| - [MaxMemAligns](#Sequencer_MaxMemAligns ) | No | integer | No | - | MaxMemAligns is max mem aligns batch can handle |
+| - [MaxArithmetics](#Sequencer_MaxArithmetics ) | No | integer | No | - | MaxArithmetics is max arithmetics batch can handle |
+| - [MaxBinaries](#Sequencer_MaxBinaries ) | No | integer | No | - | MaxBinaries is max binaries batch can handle |
+| - [MaxSteps](#Sequencer_MaxSteps ) | No | integer | No | - | MaxSteps is max steps batch can handle |
+| - [WeightBatchBytesSize](#Sequencer_WeightBatchBytesSize ) | No | integer | No | - | WeightBatchBytesSize is the cost weight for the BatchBytesSize batch resource |
+| - [WeightCumulativeGasUsed](#Sequencer_WeightCumulativeGasUsed ) | No | integer | No | - | WeightCumulativeGasUsed is the cost weight for the CumulativeGasUsed batch resource |
+| - [WeightKeccakHashes](#Sequencer_WeightKeccakHashes ) | No | integer | No | - | WeightKeccakHashes is the cost weight for the KeccakHashes batch resource |
+| - [WeightPoseidonHashes](#Sequencer_WeightPoseidonHashes ) | No | integer | No | - | WeightPoseidonHashes is the cost weight for the PoseidonHashes batch resource |
+| - [WeightPoseidonPaddings](#Sequencer_WeightPoseidonPaddings ) | No | integer | No | - | WeightPoseidonPaddings is the cost weight for the PoseidonPaddings batch resource |
+| - [WeightMemAligns](#Sequencer_WeightMemAligns ) | No | integer | No | - | WeightMemAligns is the cost weight for the MemAligns batch resource |
+| - [WeightArithmetics](#Sequencer_WeightArithmetics ) | No | integer | No | - | WeightArithmetics is the cost weight for the Arithmetics batch resource |
+| - [WeightBinaries](#Sequencer_WeightBinaries ) | No | integer | No | - | WeightBinaries is the cost weight for the Binaries batch resource |
+| - [WeightSteps](#Sequencer_WeightSteps ) | No | integer | No | - | WeightSteps is the cost weight for the Steps batch resource |
+| - [TxLifetimeCheckTimeout](#Sequencer_TxLifetimeCheckTimeout ) | No | string | No | - | Duration |
+| - [MaxTxLifetime](#Sequencer_MaxTxLifetime ) | No | string | No | - | Duration |
+| - [Finalizer](#Sequencer_Finalizer ) | No | object | No | - | Finalizer's specific config properties |
+| - [DBManager](#Sequencer_DBManager ) | No | object | No | - | DBManager's specific config properties |
+| - [Worker](#Sequencer_Worker ) | No | object | No | - | Worker's specific config properties |
+| - [EffectiveGasPrice](#Sequencer_EffectiveGasPrice ) | No | object | No | - | EffectiveGasPrice is the config for the gas price |
+
+### 10.1. `Sequencer.WaitPeriodPoolIsEmpty`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1s"`
+
+**Description:** WaitPeriodPoolIsEmpty is the time the sequencer waits until
+trying to add new txs to the state
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1s"):
+```
+[Sequencer]
+WaitPeriodPoolIsEmpty="1s"
+```
+
+### 10.2. `Sequencer.BlocksAmountForTxsToBeDeleted`
+
+**Type:** : `integer`
+
+**Default:** `100`
+
+**Description:** BlocksAmountForTxsToBeDeleted is blocks amount after which txs will be deleted from the pool
+
+**Example setting the default value** (100):
+```
+[Sequencer]
+BlocksAmountForTxsToBeDeleted=100
+```
+
+### 10.3. `Sequencer.FrequencyToCheckTxsForDelete`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"12h0m0s"`
+
+**Description:** FrequencyToCheckTxsForDelete is frequency with which txs will be checked for deleting
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("12h0m0s"):
+```
+[Sequencer]
+FrequencyToCheckTxsForDelete="12h0m0s"
+```
+
+### 10.4. `Sequencer.MaxTxsPerBatch`
+
+**Type:** : `integer`
+
+**Default:** `300`
+
+**Description:** MaxTxsPerBatch is the maximum amount of transactions in the batch
+
+**Example setting the default value** (300):
+```
+[Sequencer]
+MaxTxsPerBatch=300
+```
+
+### 10.5. `Sequencer.MaxBatchBytesSize`
+
+**Type:** : `integer`
+
+**Default:** `120000`
+
+**Description:** MaxBatchBytesSize is the maximum batch size in bytes
+(subtracted bits of all types.Sequence fields excluding BatchL2Data from MaxTxSizeForL1)
+
+**Example setting the default value** (120000):
+```
+[Sequencer]
+MaxBatchBytesSize=120000
+```
+
+### 10.6. `Sequencer.MaxCumulativeGasUsed`
+
+**Type:** : `integer`
+
+**Default:** `30000000`
+
+**Description:** MaxCumulativeGasUsed is max gas amount used by batch
+
+**Example setting the default value** (30000000):
+```
+[Sequencer]
+MaxCumulativeGasUsed=30000000
+```
+
+### 10.7. `Sequencer.MaxKeccakHashes`
+
+**Type:** : `integer`
+
+**Default:** `2145`
+
+**Description:** MaxKeccakHashes is max keccak hashes used by batch
+
+**Example setting the default value** (2145):
+```
+[Sequencer]
+MaxKeccakHashes=2145
+```
+
+### 10.8. `Sequencer.MaxPoseidonHashes`
+
+**Type:** : `integer`
+
+**Default:** `252357`
+
+**Description:** MaxPoseidonHashes is max poseidon hashes batch can handle
+
+**Example setting the default value** (252357):
+```
+[Sequencer]
+MaxPoseidonHashes=252357
+```
+
+### 10.9. `Sequencer.MaxPoseidonPaddings`
+
+**Type:** : `integer`
+
+**Default:** `135191`
+
+**Description:** MaxPoseidonPaddings is max poseidon paddings batch can handle
+
+**Example setting the default value** (135191):
+```
+[Sequencer]
+MaxPoseidonPaddings=135191
+```
+
+### 10.10. `Sequencer.MaxMemAligns`
+
+**Type:** : `integer`
+
+**Default:** `236585`
+
+**Description:** MaxMemAligns is max mem aligns batch can handle
+
+**Example setting the default value** (236585):
+```
+[Sequencer]
+MaxMemAligns=236585
+```
+
+### 10.11. `Sequencer.MaxArithmetics`
+
+**Type:** : `integer`
+
+**Default:** `236585`
+
+**Description:** MaxArithmetics is max arithmetics batch can handle
+
+**Example setting the default value** (236585):
+```
+[Sequencer]
+MaxArithmetics=236585
+```
+
+### 10.12. `Sequencer.MaxBinaries`
+
+**Type:** : `integer`
+
+**Default:** `473170`
+
+**Description:** MaxBinaries is max binaries batch can handle
+
+**Example setting the default value** (473170):
+```
+[Sequencer]
+MaxBinaries=473170
+```
+
+### 10.13. `Sequencer.MaxSteps`
+
+**Type:** : `integer`
+
+**Default:** `7570538`
+
+**Description:** MaxSteps is max steps batch can handle
+
+**Example setting the default value** (7570538):
+```
+[Sequencer]
+MaxSteps=7570538
+```
+
+### 10.14. `Sequencer.WeightBatchBytesSize`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightBatchBytesSize is the cost weight for the BatchBytesSize batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightBatchBytesSize=1
+```
+
+### 10.15. `Sequencer.WeightCumulativeGasUsed`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightCumulativeGasUsed is the cost weight for the CumulativeGasUsed batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightCumulativeGasUsed=1
+```
+
+### 10.16. `Sequencer.WeightKeccakHashes`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightKeccakHashes is the cost weight for the KeccakHashes batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightKeccakHashes=1
+```
+
+### 10.17. `Sequencer.WeightPoseidonHashes`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightPoseidonHashes is the cost weight for the PoseidonHashes batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightPoseidonHashes=1
+```
+
+### 10.18. `Sequencer.WeightPoseidonPaddings`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightPoseidonPaddings is the cost weight for the PoseidonPaddings batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightPoseidonPaddings=1
+```
+
+### 10.19. `Sequencer.WeightMemAligns`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightMemAligns is the cost weight for the MemAligns batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightMemAligns=1
+```
+
+### 10.20. `Sequencer.WeightArithmetics`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightArithmetics is the cost weight for the Arithmetics batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightArithmetics=1
+```
+
+### 10.21. `Sequencer.WeightBinaries`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightBinaries is the cost weight for the Binaries batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightBinaries=1
+```
+
+### 10.22. `Sequencer.WeightSteps`
+
+**Type:** : `integer`
+
+**Default:** `1`
+
+**Description:** WeightSteps is the cost weight for the Steps batch resource
+
+**Example setting the default value** (1):
+```
+[Sequencer]
+WeightSteps=1
+```
+
+### 10.23. `Sequencer.TxLifetimeCheckTimeout`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"10m0s"`
+
+**Description:** TxLifetimeCheckTimeout is the time the sequencer waits to check txs lifetime
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("10m0s"):
+```
+[Sequencer]
+TxLifetimeCheckTimeout="10m0s"
+```
+
+### 10.24. `Sequencer.MaxTxLifetime`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"3h0m0s"`
+
+**Description:** MaxTxLifetime is the time a tx can be in the sequencer memory
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("3h0m0s"):
+```
+[Sequencer]
+MaxTxLifetime="3h0m0s"
+```
+
+### 10.25. `[Sequencer.Finalizer]`
+
+**Type:** : `object`
+**Description:** Finalizer's specific config properties
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------------------------------------------------------------------------ | ------- | ------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| - [GERDeadlineTimeout](#Sequencer_Finalizer_GERDeadlineTimeout ) | No | string | No | - | Duration |
+| - [ForcedBatchDeadlineTimeout](#Sequencer_Finalizer_ForcedBatchDeadlineTimeout ) | No | string | No | - | Duration |
+| - [SleepDuration](#Sequencer_Finalizer_SleepDuration ) | No | string | No | - | Duration |
+| - [ResourcePercentageToCloseBatch](#Sequencer_Finalizer_ResourcePercentageToCloseBatch ) | No | integer | No | - | ResourcePercentageToCloseBatch is the percentage window of the resource left out for the batch to be closed |
+| - [GERFinalityNumberOfBlocks](#Sequencer_Finalizer_GERFinalityNumberOfBlocks ) | No | integer | No | - | GERFinalityNumberOfBlocks is number of blocks to consider GER final |
+| - [ClosingSignalsManagerWaitForCheckingL1Timeout](#Sequencer_Finalizer_ClosingSignalsManagerWaitForCheckingL1Timeout ) | No | string | No | - | Duration |
+| - [ClosingSignalsManagerWaitForCheckingGER](#Sequencer_Finalizer_ClosingSignalsManagerWaitForCheckingGER ) | No | string | No | - | Duration |
+| - [ClosingSignalsManagerWaitForCheckingForcedBatches](#Sequencer_Finalizer_ClosingSignalsManagerWaitForCheckingForcedBatches ) | No | string | No | - | Duration |
+| - [ForcedBatchesFinalityNumberOfBlocks](#Sequencer_Finalizer_ForcedBatchesFinalityNumberOfBlocks ) | No | integer | No | - | ForcedBatchesFinalityNumberOfBlocks is number of blocks to consider GER final |
+| - [TimestampResolution](#Sequencer_Finalizer_TimestampResolution ) | No | string | No | - | Duration |
+| - [StopSequencerOnBatchNum](#Sequencer_Finalizer_StopSequencerOnBatchNum ) | No | integer | No | - | StopSequencerOnBatchNum specifies the batch number where the Sequencer will stop to process more transactions and generate new batches. The Sequencer will halt after it closes the batch equal to this number |
+
+#### 10.25.1. `Sequencer.Finalizer.GERDeadlineTimeout`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5s"`
+
+**Description:** GERDeadlineTimeout is the time the finalizer waits after receiving closing signal to update Global Exit Root
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5s"):
+```
+[Sequencer.Finalizer]
+GERDeadlineTimeout="5s"
+```
+
+#### 10.25.2. `Sequencer.Finalizer.ForcedBatchDeadlineTimeout`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1m0s"`
+
+**Description:** ForcedBatchDeadlineTimeout is the time the finalizer waits after receiving closing signal to process Forced Batches
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1m0s"):
+```
+[Sequencer.Finalizer]
+ForcedBatchDeadlineTimeout="1m0s"
+```
+
+#### 10.25.3. `Sequencer.Finalizer.SleepDuration`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"100ms"`
+
+**Description:** SleepDuration is the time the finalizer sleeps between each iteration, if there are no transactions to be processed
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("100ms"):
+```
+[Sequencer.Finalizer]
+SleepDuration="100ms"
+```
+
+#### 10.25.4. `Sequencer.Finalizer.ResourcePercentageToCloseBatch`
+
+**Type:** : `integer`
+
+**Default:** `10`
+
+**Description:** ResourcePercentageToCloseBatch is the percentage window of the resource left out for the batch to be closed
+
+**Example setting the default value** (10):
+```
+[Sequencer.Finalizer]
+ResourcePercentageToCloseBatch=10
+```
+
+#### 10.25.5. `Sequencer.Finalizer.GERFinalityNumberOfBlocks`
+
+**Type:** : `integer`
+
+**Default:** `64`
+
+**Description:** GERFinalityNumberOfBlocks is number of blocks to consider GER final
+
+**Example setting the default value** (64):
+```
+[Sequencer.Finalizer]
+GERFinalityNumberOfBlocks=64
+```
+
+#### 10.25.6. `Sequencer.Finalizer.ClosingSignalsManagerWaitForCheckingL1Timeout`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"10s"`
+
+**Description:** ClosingSignalsManagerWaitForCheckingL1Timeout is used by the closing signals manager to wait for its operation
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("10s"):
+```
+[Sequencer.Finalizer]
+ClosingSignalsManagerWaitForCheckingL1Timeout="10s"
+```
+
+#### 10.25.7. `Sequencer.Finalizer.ClosingSignalsManagerWaitForCheckingGER`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"10s"`
+
+**Description:** ClosingSignalsManagerWaitForCheckingGER is used by the closing signals manager to wait for its operation
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("10s"):
+```
+[Sequencer.Finalizer]
+ClosingSignalsManagerWaitForCheckingGER="10s"
+```
+
+#### 10.25.8. `Sequencer.Finalizer.ClosingSignalsManagerWaitForCheckingForcedBatches`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"10s"`
+
+**Description:** ClosingSignalsManagerWaitForCheckingL1Timeout is used by the closing signals manager to wait for its operation
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("10s"):
+```
+[Sequencer.Finalizer]
+ClosingSignalsManagerWaitForCheckingForcedBatches="10s"
+```
+
+#### 10.25.9. `Sequencer.Finalizer.ForcedBatchesFinalityNumberOfBlocks`
+
+**Type:** : `integer`
+
+**Default:** `64`
+
+**Description:** ForcedBatchesFinalityNumberOfBlocks is number of blocks to consider GER final
+
+**Example setting the default value** (64):
+```
+[Sequencer.Finalizer]
+ForcedBatchesFinalityNumberOfBlocks=64
+```
+
+#### 10.25.10. `Sequencer.Finalizer.TimestampResolution`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"10s"`
+
+**Description:** TimestampResolution is the resolution of the timestamp used to close a batch
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("10s"):
+```
+[Sequencer.Finalizer]
+TimestampResolution="10s"
+```
+
+#### 10.25.11. `Sequencer.Finalizer.StopSequencerOnBatchNum`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** StopSequencerOnBatchNum specifies the batch number where the Sequencer will stop to process more transactions and generate new batches. The Sequencer will halt after it closes the batch equal to this number
+
+**Example setting the default value** (0):
+```
+[Sequencer.Finalizer]
+StopSequencerOnBatchNum=0
+```
+
+### 10.26. `[Sequencer.DBManager]`
+
+**Type:** : `object`
+**Description:** DBManager's specific config properties
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------- |
+| - [PoolRetrievalInterval](#Sequencer_DBManager_PoolRetrievalInterval ) | No | string | No | - | Duration |
+| - [L2ReorgRetrievalInterval](#Sequencer_DBManager_L2ReorgRetrievalInterval ) | No | string | No | - | Duration |
+
+#### 10.26.1. `Sequencer.DBManager.PoolRetrievalInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"500ms"`
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("500ms"):
+```
+[Sequencer.DBManager]
+PoolRetrievalInterval="500ms"
+```
+
+#### 10.26.2. `Sequencer.DBManager.L2ReorgRetrievalInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5s"`
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5s"):
+```
+[Sequencer.DBManager]
+L2ReorgRetrievalInterval="5s"
+```
+
+### 10.27. `[Sequencer.Worker]`
+
+**Type:** : `object`
+**Description:** Worker's specific config properties
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------- |
+| - [ResourceCostMultiplier](#Sequencer_Worker_ResourceCostMultiplier ) | No | number | No | - | ResourceCostMultiplier is the multiplier for the resource cost |
+
+#### 10.27.1. `Sequencer.Worker.ResourceCostMultiplier`
+
+**Type:** : `number`
+
+**Default:** `1000`
+
+**Description:** ResourceCostMultiplier is the multiplier for the resource cost
+
+**Example setting the default value** (1000):
+```
+[Sequencer.Worker]
+ResourceCostMultiplier=1000
+```
+
+### 10.28. `[Sequencer.EffectiveGasPrice]`
+
+**Type:** : `object`
+**Description:** EffectiveGasPrice is the config for the gas price
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------------------------------------------------------------ | ------- | ------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| - [MaxBreakEvenGasPriceDeviationPercentage](#Sequencer_EffectiveGasPrice_MaxBreakEvenGasPriceDeviationPercentage ) | No | integer | No | - | MaxBreakEvenGasPriceDeviationPercentage is the max allowed deviation percentage BreakEvenGasPrice on re-calculation |
+| - [L1GasPriceFactor](#Sequencer_EffectiveGasPrice_L1GasPriceFactor ) | No | number | No | - | L1GasPriceFactor is the percentage of the L1 gas price that will be used as the L2 min gas price |
+| - [ByteGasCost](#Sequencer_EffectiveGasPrice_ByteGasCost ) | No | integer | No | - | ByteGasCost is the gas cost per byte |
+| - [MarginFactor](#Sequencer_EffectiveGasPrice_MarginFactor ) | No | number | No | - | MarginFactor is the margin factor percentage to be added to the L2 min gas price |
+| - [Enabled](#Sequencer_EffectiveGasPrice_Enabled ) | No | boolean | No | - | Enabled is a flag to enable/disable the effective gas price |
+| - [DefaultMinGasPriceAllowed](#Sequencer_EffectiveGasPrice_DefaultMinGasPriceAllowed ) | No | integer | No | - | DefaultMinGasPriceAllowed is the default min gas price to suggest This value is assigned from [Pool].DefaultMinGasPriceAllowed |
+
+#### 10.28.1. `Sequencer.EffectiveGasPrice.MaxBreakEvenGasPriceDeviationPercentage`
+
+**Type:** : `integer`
+
+**Default:** `10`
+
+**Description:** MaxBreakEvenGasPriceDeviationPercentage is the max allowed deviation percentage BreakEvenGasPrice on re-calculation
+
+**Example setting the default value** (10):
+```
+[Sequencer.EffectiveGasPrice]
+MaxBreakEvenGasPriceDeviationPercentage=10
+```
+
+#### 10.28.2. `Sequencer.EffectiveGasPrice.L1GasPriceFactor`
+
+**Type:** : `number`
+
+**Default:** `0.25`
+
+**Description:** L1GasPriceFactor is the percentage of the L1 gas price that will be used as the L2 min gas price
+
+**Example setting the default value** (0.25):
+```
+[Sequencer.EffectiveGasPrice]
+L1GasPriceFactor=0.25
+```
+
+#### 10.28.3. `Sequencer.EffectiveGasPrice.ByteGasCost`
+
+**Type:** : `integer`
+
+**Default:** `16`
+
+**Description:** ByteGasCost is the gas cost per byte
+
+**Example setting the default value** (16):
+```
+[Sequencer.EffectiveGasPrice]
+ByteGasCost=16
+```
+
+#### 10.28.4. `Sequencer.EffectiveGasPrice.MarginFactor`
+
+**Type:** : `number`
+
+**Default:** `1`
+
+**Description:** MarginFactor is the margin factor percentage to be added to the L2 min gas price
+
+**Example setting the default value** (1):
+```
+[Sequencer.EffectiveGasPrice]
+MarginFactor=1
+```
+
+#### 10.28.5. `Sequencer.EffectiveGasPrice.Enabled`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** Enabled is a flag to enable/disable the effective gas price
+
+**Example setting the default value** (false):
+```
+[Sequencer.EffectiveGasPrice]
+Enabled=false
+```
+
+#### 10.28.6. `Sequencer.EffectiveGasPrice.DefaultMinGasPriceAllowed`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** DefaultMinGasPriceAllowed is the default min gas price to suggest
+This value is assigned from [Pool].DefaultMinGasPriceAllowed
+
+**Example setting the default value** (0):
+```
+[Sequencer.EffectiveGasPrice]
+DefaultMinGasPriceAllowed=0
+```
+
+## 11. `[SequenceSender]`
+
+**Type:** : `object`
+**Description:** Configuration of the sequence sender service
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------------------------------------------------- | ------- | --------------- | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| - [WaitPeriodSendSequence](#SequenceSender_WaitPeriodSendSequence ) | No | string | No | - | Duration |
+| - [LastBatchVirtualizationTimeMaxWaitPeriod](#SequenceSender_LastBatchVirtualizationTimeMaxWaitPeriod ) | No | string | No | - | Duration |
+| - [MaxTxSizeForL1](#SequenceSender_MaxTxSizeForL1 ) | No | integer | No | - | MaxTxSizeForL1 is the maximum size a single transaction can have. This field has non-trivial consequences: larger transactions than 128KB are significantly harder and more expensive to propagate; larger transactions also take more resources to validate whether they fit into the pool or not. |
+| - [SenderAddress](#SequenceSender_SenderAddress ) | No | string | No | - | SenderAddress defines which private key the eth tx manager needs to use to sign the L1 txs |
+| - [PrivateKeys](#SequenceSender_PrivateKeys ) | No | array of object | No | - | PrivateKeys defines all the key store files that are going to be read in order to provide the private keys to sign the L1 txs |
+| - [ForkUpgradeBatchNumber](#SequenceSender_ForkUpgradeBatchNumber ) | No | integer | No | - | Batch number where there is a forkid change (fork upgrade) |
+
+### 11.1. `SequenceSender.WaitPeriodSendSequence`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5s"`
+
+**Description:** WaitPeriodSendSequence is the time the sequencer waits until
+trying to send a sequence to L1
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5s"):
+```
+[SequenceSender]
+WaitPeriodSendSequence="5s"
+```
+
+### 11.2. `SequenceSender.LastBatchVirtualizationTimeMaxWaitPeriod`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5s"`
+
+**Description:** LastBatchVirtualizationTimeMaxWaitPeriod is time since sequences should be sent
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5s"):
+```
+[SequenceSender]
+LastBatchVirtualizationTimeMaxWaitPeriod="5s"
+```
+
+### 11.3. `SequenceSender.MaxTxSizeForL1`
+
+**Type:** : `integer`
+
+**Default:** `131072`
+
+**Description:** MaxTxSizeForL1 is the maximum size a single transaction can have. This field has
+non-trivial consequences: larger transactions than 128KB are significantly harder and
+more expensive to propagate; larger transactions also take more resources
+to validate whether they fit into the pool or not.
+
+**Example setting the default value** (131072):
+```
+[SequenceSender]
+MaxTxSizeForL1=131072
+```
+
+### 11.4. `SequenceSender.SenderAddress`
+
+**Type:** : `string`
+
+**Default:** `"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"`
+
+**Description:** SenderAddress defines which private key the eth tx manager needs to use
+to sign the L1 txs
+
+**Example setting the default value** ("0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"):
+```
+[SequenceSender]
+SenderAddress="0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"
+```
+
+### 11.5. `SequenceSender.PrivateKeys`
+
+**Type:** : `array of object`
+
+**Default:** `[{"Path": "/pk/sequencer.keystore", "Password": "testonly"}]`
+
+**Description:** PrivateKeys defines all the key store files that are going
+to be read in order to provide the private keys to sign the L1 txs
+
+**Example setting the default value** ([{"Path": "/pk/sequencer.keystore", "Password": "testonly"}]):
+```
+[SequenceSender]
+PrivateKeys=[{"Path": "/pk/sequencer.keystore", "Password": "testonly"}]
+```
+
+| | Array restrictions |
+| -------------------- | ------------------ |
+| **Min items** | N/A |
+| **Max items** | N/A |
+| **Items unicity** | False |
+| **Additional items** | False |
+| **Tuple validation** | See below |
+
+| Each item of this array must be | Description |
+| ------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| [PrivateKeys items](#SequenceSender_PrivateKeys_items) | KeystoreFileConfig has all the information needed to load a private key from a k ... |
+
+#### 11.5.1. [SequenceSender.PrivateKeys.PrivateKeys items]
+
+**Type:** : `object`
+**Description:** KeystoreFileConfig has all the information needed to load a private key from a key store file
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------ |
+| - [Path](#SequenceSender_PrivateKeys_items_Path ) | No | string | No | - | Path is the file path for the key store file |
+| - [Password](#SequenceSender_PrivateKeys_items_Password ) | No | string | No | - | Password is the password to decrypt the key store file |
+
+##### 11.5.1.1. `SequenceSender.PrivateKeys.PrivateKeys items.Path`
+
+**Type:** : `string`
+**Description:** Path is the file path for the key store file
+
+##### 11.5.1.2. `SequenceSender.PrivateKeys.PrivateKeys items.Password`
+
+**Type:** : `string`
+**Description:** Password is the password to decrypt the key store file
+
+### 11.6. `SequenceSender.ForkUpgradeBatchNumber`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** Batch number where there is a forkid change (fork upgrade)
+
+**Example setting the default value** (0):
+```
+[SequenceSender]
+ForkUpgradeBatchNumber=0
+```
+
+## 12. `[Aggregator]`
+
+**Type:** : `object`
+**Description:** Configuration of the aggregator service
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------------------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| - [Host](#Aggregator_Host ) | No | string | No | - | Host for the grpc server |
+| - [Port](#Aggregator_Port ) | No | integer | No | - | Port for the grpc server |
+| - [RetryTime](#Aggregator_RetryTime ) | No | string | No | - | Duration |
+| - [VerifyProofInterval](#Aggregator_VerifyProofInterval ) | No | string | No | - | Duration |
+| - [ProofStatePollingInterval](#Aggregator_ProofStatePollingInterval ) | No | string | No | - | Duration |
+| - [TxProfitabilityCheckerType](#Aggregator_TxProfitabilityCheckerType ) | No | string | No | - | TxProfitabilityCheckerType type for checking is it profitable for aggregator to validate batch possible values: base/acceptall |
+| - [TxProfitabilityMinReward](#Aggregator_TxProfitabilityMinReward ) | No | object | No | - | TxProfitabilityMinReward min reward for base tx profitability checker when aggregator will validate batch this parameter is used for the base tx profitability checker |
+| - [IntervalAfterWhichBatchConsolidateAnyway](#Aggregator_IntervalAfterWhichBatchConsolidateAnyway ) | No | string | No | - | Duration |
+| - [ChainID](#Aggregator_ChainID ) | No | integer | No | - | ChainID is the L2 ChainID provided by the Network Config |
+| - [ForkId](#Aggregator_ForkId ) | No | integer | No | - | ForkID is the L2 ForkID provided by the Network Config |
+| - [SenderAddress](#Aggregator_SenderAddress ) | No | string | No | - | SenderAddress defines which private key the eth tx manager needs to use to sign the L1 txs |
+| - [CleanupLockedProofsInterval](#Aggregator_CleanupLockedProofsInterval ) | No | string | No | - | Duration |
+| - [GeneratingProofCleanupThreshold](#Aggregator_GeneratingProofCleanupThreshold ) | No | string | No | - | GeneratingProofCleanupThreshold represents the time interval after which a proof in generating state is considered to be stuck and allowed to be cleared. |
+
+### 12.1. `Aggregator.Host`
+
+**Type:** : `string`
+
+**Default:** `"0.0.0.0"`
+
+**Description:** Host for the grpc server
+
+**Example setting the default value** ("0.0.0.0"):
+```
+[Aggregator]
+Host="0.0.0.0"
+```
+
+### 12.2. `Aggregator.Port`
+
+**Type:** : `integer`
+
+**Default:** `50081`
+
+**Description:** Port for the grpc server
+
+**Example setting the default value** (50081):
+```
+[Aggregator]
+Port=50081
+```
+
+### 12.3. `Aggregator.RetryTime`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5s"`
+
+**Description:** RetryTime is the time the aggregator main loop sleeps if there are no proofs to aggregate
+or batches to generate proofs. It is also used in the isSynced loop
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5s"):
+```
+[Aggregator]
+RetryTime="5s"
+```
+
+### 12.4. `Aggregator.VerifyProofInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1m30s"`
+
+**Description:** VerifyProofInterval is the interval of time to verify/send an proof in L1
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1m30s"):
+```
+[Aggregator]
+VerifyProofInterval="1m30s"
+```
+
+### 12.5. `Aggregator.ProofStatePollingInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5s"`
+
+**Description:** ProofStatePollingInterval is the interval time to polling the prover about the generation state of a proof
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5s"):
+```
+[Aggregator]
+ProofStatePollingInterval="5s"
+```
+
+### 12.6. `Aggregator.TxProfitabilityCheckerType`
+
+**Type:** : `string`
+
+**Default:** `"acceptall"`
+
+**Description:** TxProfitabilityCheckerType type for checking is it profitable for aggregator to validate batch
+possible values: base/acceptall
+
+**Example setting the default value** ("acceptall"):
+```
+[Aggregator]
+TxProfitabilityCheckerType="acceptall"
+```
+
+### 12.7. `[Aggregator.TxProfitabilityMinReward]`
+
+**Type:** : `object`
+**Description:** TxProfitabilityMinReward min reward for base tx profitability checker when aggregator will validate batch
+this parameter is used for the base tx profitability checker
+
+### 12.8. `Aggregator.IntervalAfterWhichBatchConsolidateAnyway`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"0s"`
+
+**Description:** IntervalAfterWhichBatchConsolidateAnyway this is interval for the main sequencer, that will check if there is no transactions
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("0s"):
+```
+[Aggregator]
+IntervalAfterWhichBatchConsolidateAnyway="0s"
+```
+
+### 12.9. `Aggregator.ChainID`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** ChainID is the L2 ChainID provided by the Network Config
+
+**Example setting the default value** (0):
+```
+[Aggregator]
+ChainID=0
+```
+
+### 12.10. `Aggregator.ForkId`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** ForkID is the L2 ForkID provided by the Network Config
+
+**Example setting the default value** (0):
+```
+[Aggregator]
+ForkId=0
+```
+
+### 12.11. `Aggregator.SenderAddress`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** SenderAddress defines which private key the eth tx manager needs to use
+to sign the L1 txs
+
+**Example setting the default value** (""):
+```
+[Aggregator]
+SenderAddress=""
+```
+
+### 12.12. `Aggregator.CleanupLockedProofsInterval`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"2m0s"`
+
+**Description:** CleanupLockedProofsInterval is the interval of time to clean up locked proofs.
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("2m0s"):
+```
+[Aggregator]
+CleanupLockedProofsInterval="2m0s"
+```
+
+### 12.13. `Aggregator.GeneratingProofCleanupThreshold`
+
+**Type:** : `string`
+
+**Default:** `"10m"`
+
+**Description:** GeneratingProofCleanupThreshold represents the time interval after
+which a proof in generating state is considered to be stuck and
+allowed to be cleared.
+
+**Example setting the default value** ("10m"):
+```
+[Aggregator]
+GeneratingProofCleanupThreshold="10m"
+```
+
+## 13. `[NetworkConfig]`
+
+**Type:** : `object`
+**Description:** Configuration of the genesis of the network. This is used to known the initial state of the network
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ---------- | ----------------------------------------------------------------------------------- |
+| - [l1Config](#NetworkConfig_l1Config ) | No | object | No | - | L1: Configuration related to L1 |
+| - [L2GlobalExitRootManagerAddr](#NetworkConfig_L2GlobalExitRootManagerAddr ) | No | array of integer | No | - | DEPRECATED L2: address of the \`PolygonZkEVMGlobalExitRootL2 proxy\` smart contract |
+| - [L2BridgeAddr](#NetworkConfig_L2BridgeAddr ) | No | array of integer | No | - | L2: address of the \`PolygonZkEVMBridge proxy\` smart contract |
+| - [Genesis](#NetworkConfig_Genesis ) | No | object | No | - | L1: Genesis of the rollup, first block number and root |
+
+### 13.1. `[NetworkConfig.l1Config]`
+
+**Type:** : `object`
+**Description:** L1: Configuration related to L1
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ---------- | ------------------------------------------------ |
+| - [chainId](#NetworkConfig_l1Config_chainId ) | No | integer | No | - | Chain ID of the L1 network |
+| - [polygonZkEVMAddress](#NetworkConfig_l1Config_polygonZkEVMAddress ) | No | array of integer | No | - | Address of the L1 contract |
+| - [maticTokenAddress](#NetworkConfig_l1Config_maticTokenAddress ) | No | array of integer | No | - | Address of the L1 Matic token Contract |
+| - [polygonZkEVMGlobalExitRootAddress](#NetworkConfig_l1Config_polygonZkEVMGlobalExitRootAddress ) | No | array of integer | No | - | Address of the L1 GlobalExitRootManager contract |
+
+#### 13.1.1. `NetworkConfig.l1Config.chainId`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** Chain ID of the L1 network
+
+**Example setting the default value** (0):
+```
+[NetworkConfig.l1Config]
+chainId=0
+```
+
+#### 13.1.2. `NetworkConfig.l1Config.polygonZkEVMAddress`
+
+**Type:** : `array of integer`
+**Description:** Address of the L1 contract
+
+#### 13.1.3. `NetworkConfig.l1Config.maticTokenAddress`
+
+**Type:** : `array of integer`
+**Description:** Address of the L1 Matic token Contract
+
+#### 13.1.4. `NetworkConfig.l1Config.polygonZkEVMGlobalExitRootAddress`
+
+**Type:** : `array of integer`
+**Description:** Address of the L1 GlobalExitRootManager contract
+
+### 13.2. `NetworkConfig.L2GlobalExitRootManagerAddr`
+
+**Type:** : `array of integer`
+**Description:** DEPRECATED L2: address of the `PolygonZkEVMGlobalExitRootL2 proxy` smart contract
+
+### 13.3. `NetworkConfig.L2BridgeAddr`
+
+**Type:** : `array of integer`
+**Description:** L2: address of the `PolygonZkEVMBridge proxy` smart contract
+
+### 13.4. `[NetworkConfig.Genesis]`
+
+**Type:** : `object`
+**Description:** L1: Genesis of the rollup, first block number and root
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------ | ------- | ---------------- | ---------- | ---------- | --------------------------------------------------------------------------------- |
+| - [GenesisBlockNum](#NetworkConfig_Genesis_GenesisBlockNum ) | No | integer | No | - | GenesisBlockNum is the block number where the polygonZKEVM smc was deployed on L1 |
+| - [Root](#NetworkConfig_Genesis_Root ) | No | array of integer | No | - | Root hash of the genesis block |
+| - [GenesisActions](#NetworkConfig_Genesis_GenesisActions ) | No | array of object | No | - | Contracts to be deployed to L2 |
+
+#### 13.4.1. `NetworkConfig.Genesis.GenesisBlockNum`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** GenesisBlockNum is the block number where the polygonZKEVM smc was deployed on L1
+
+**Example setting the default value** (0):
+```
+[NetworkConfig.Genesis]
+GenesisBlockNum=0
+```
+
+#### 13.4.2. `NetworkConfig.Genesis.Root`
+
+**Type:** : `array of integer`
+**Description:** Root hash of the genesis block
+
+#### 13.4.3. `NetworkConfig.Genesis.GenesisActions`
+
+**Type:** : `array of object`
+**Description:** Contracts to be deployed to L2
+
+| | Array restrictions |
+| -------------------- | ------------------ |
+| **Min items** | N/A |
+| **Max items** | N/A |
+| **Items unicity** | False |
+| **Additional items** | False |
+| **Tuple validation** | See below |
+
+| Each item of this array must be | Description |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| [GenesisActions items](#NetworkConfig_Genesis_GenesisActions_items) | GenesisAction represents one of the values set on the SMT during genesis. |
+
+##### 13.4.3.1. [NetworkConfig.Genesis.GenesisActions.GenesisActions items]
+
+**Type:** : `object`
+**Description:** GenesisAction represents one of the values set on the SMT during genesis.
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------- |
+| - [address](#NetworkConfig_Genesis_GenesisActions_items_address ) | No | string | No | - | - |
+| - [type](#NetworkConfig_Genesis_GenesisActions_items_type ) | No | integer | No | - | - |
+| - [storagePosition](#NetworkConfig_Genesis_GenesisActions_items_storagePosition ) | No | string | No | - | - |
+| - [bytecode](#NetworkConfig_Genesis_GenesisActions_items_bytecode ) | No | string | No | - | - |
+| - [key](#NetworkConfig_Genesis_GenesisActions_items_key ) | No | string | No | - | - |
+| - [value](#NetworkConfig_Genesis_GenesisActions_items_value ) | No | string | No | - | - |
+| - [root](#NetworkConfig_Genesis_GenesisActions_items_root ) | No | string | No | - | - |
+
+##### 13.4.3.1.1. `NetworkConfig.Genesis.GenesisActions.GenesisActions items.address`
+
+**Type:** : `string`
+
+##### 13.4.3.1.2. `NetworkConfig.Genesis.GenesisActions.GenesisActions items.type`
+
+**Type:** : `integer`
+
+##### 13.4.3.1.3. `NetworkConfig.Genesis.GenesisActions.GenesisActions items.storagePosition`
+
+**Type:** : `string`
+
+##### 13.4.3.1.4. `NetworkConfig.Genesis.GenesisActions.GenesisActions items.bytecode`
+
+**Type:** : `string`
+
+##### 13.4.3.1.5. `NetworkConfig.Genesis.GenesisActions.GenesisActions items.key`
+
+**Type:** : `string`
+
+##### 13.4.3.1.6. `NetworkConfig.Genesis.GenesisActions.GenesisActions items.value`
+
+**Type:** : `string`
+
+##### 13.4.3.1.7. `NetworkConfig.Genesis.GenesisActions.GenesisActions items.root`
+
+**Type:** : `string`
+
+## 14. `[L2GasPriceSuggester]`
+
+**Type:** : `object`
+**Description:** Configuration of the gas price suggester service
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------------------------ | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| - [Type](#L2GasPriceSuggester_Type ) | No | string | No | - | - |
+| - [DefaultGasPriceWei](#L2GasPriceSuggester_DefaultGasPriceWei ) | No | integer | No | - | DefaultGasPriceWei is used to set the gas price to be used by the default gas pricer or as minimim gas price by the follower gas pricer. |
+| - [MaxGasPriceWei](#L2GasPriceSuggester_MaxGasPriceWei ) | No | integer | No | - | MaxGasPriceWei is used to limit the gas price returned by the follower gas pricer to a maximum value. It is ignored if 0. |
+| - [MaxPrice](#L2GasPriceSuggester_MaxPrice ) | No | object | No | - | - |
+| - [IgnorePrice](#L2GasPriceSuggester_IgnorePrice ) | No | object | No | - | - |
+| - [CheckBlocks](#L2GasPriceSuggester_CheckBlocks ) | No | integer | No | - | - |
+| - [Percentile](#L2GasPriceSuggester_Percentile ) | No | integer | No | - | - |
+| - [UpdatePeriod](#L2GasPriceSuggester_UpdatePeriod ) | No | string | No | - | Duration |
+| - [CleanHistoryPeriod](#L2GasPriceSuggester_CleanHistoryPeriod ) | No | string | No | - | Duration |
+| - [CleanHistoryTimeRetention](#L2GasPriceSuggester_CleanHistoryTimeRetention ) | No | string | No | - | Duration |
+| - [Factor](#L2GasPriceSuggester_Factor ) | No | number | No | - | - |
+
+### 14.1. `L2GasPriceSuggester.Type`
+
+**Type:** : `string`
+
+**Default:** `"follower"`
+
+**Example setting the default value** ("follower"):
+```
+[L2GasPriceSuggester]
+Type="follower"
+```
+
+### 14.2. `L2GasPriceSuggester.DefaultGasPriceWei`
+
+**Type:** : `integer`
+
+**Default:** `2000000000`
+
+**Description:** DefaultGasPriceWei is used to set the gas price to be used by the default gas pricer or as minimim gas price by the follower gas pricer.
+
+**Example setting the default value** (2000000000):
+```
+[L2GasPriceSuggester]
+DefaultGasPriceWei=2000000000
+```
+
+### 14.3. `L2GasPriceSuggester.MaxGasPriceWei`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** MaxGasPriceWei is used to limit the gas price returned by the follower gas pricer to a maximum value. It is ignored if 0.
+
+**Example setting the default value** (0):
+```
+[L2GasPriceSuggester]
+MaxGasPriceWei=0
+```
+
+### 14.4. `[L2GasPriceSuggester.MaxPrice]`
+
+**Type:** : `object`
+
+### 14.5. `[L2GasPriceSuggester.IgnorePrice]`
+
+**Type:** : `object`
+
+### 14.6. `L2GasPriceSuggester.CheckBlocks`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Example setting the default value** (0):
+```
+[L2GasPriceSuggester]
+CheckBlocks=0
+```
+
+### 14.7. `L2GasPriceSuggester.Percentile`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Example setting the default value** (0):
+```
+[L2GasPriceSuggester]
+Percentile=0
+```
+
+### 14.8. `L2GasPriceSuggester.UpdatePeriod`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"10s"`
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("10s"):
+```
+[L2GasPriceSuggester]
+UpdatePeriod="10s"
+```
+
+### 14.9. `L2GasPriceSuggester.CleanHistoryPeriod`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1h0m0s"`
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1h0m0s"):
+```
+[L2GasPriceSuggester]
+CleanHistoryPeriod="1h0m0s"
+```
+
+### 14.10. `L2GasPriceSuggester.CleanHistoryTimeRetention`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"5m0s"`
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("5m0s"):
+```
+[L2GasPriceSuggester]
+CleanHistoryTimeRetention="5m0s"
+```
+
+### 14.11. `L2GasPriceSuggester.Factor`
+
+**Type:** : `number`
+
+**Default:** `0.15`
+
+**Example setting the default value** (0.15):
+```
+[L2GasPriceSuggester]
+Factor=0.15
+```
+
+## 15. `[Executor]`
+
+**Type:** : `object`
+**Description:** Configuration of the executor service
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------- |
+| - [URI](#Executor_URI ) | No | string | No | - | - |
+| - [MaxResourceExhaustedAttempts](#Executor_MaxResourceExhaustedAttempts ) | No | integer | No | - | MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion |
+| - [WaitOnResourceExhaustion](#Executor_WaitOnResourceExhaustion ) | No | string | No | - | Duration |
+| - [MaxGRPCMessageSize](#Executor_MaxGRPCMessageSize ) | No | integer | No | - | - |
+
+### 15.1. `Executor.URI`
+
+**Type:** : `string`
+
+**Default:** `"zkevm-prover:50071"`
+
+**Example setting the default value** ("zkevm-prover:50071"):
+```
+[Executor]
+URI="zkevm-prover:50071"
+```
+
+### 15.2. `Executor.MaxResourceExhaustedAttempts`
+
+**Type:** : `integer`
+
+**Default:** `3`
+
+**Description:** MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion
+
+**Example setting the default value** (3):
+```
+[Executor]
+MaxResourceExhaustedAttempts=3
+```
+
+### 15.3. `Executor.WaitOnResourceExhaustion`
+
+**Title:** Duration
+
+**Type:** : `string`
+
+**Default:** `"1s"`
+
+**Description:** WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion
+
+**Examples:**
+
+```json
+"1m"
+```
+
+```json
+"300ms"
+```
+
+**Example setting the default value** ("1s"):
+```
+[Executor]
+WaitOnResourceExhaustion="1s"
+```
+
+### 15.4. `Executor.MaxGRPCMessageSize`
+
+**Type:** : `integer`
+
+**Default:** `100000000`
+
+**Example setting the default value** (100000000):
+```
+[Executor]
+MaxGRPCMessageSize=100000000
+```
+
+## 16. `[MTClient]`
+
+**Type:** : `object`
+**Description:** Configuration of the merkle tree client service. Not use in the node, only for testing
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ----------------------- | ------- | ------ | ---------- | ---------- | ---------------------- |
+| - [URI](#MTClient_URI ) | No | string | No | - | URI is the server URI. |
+
+### 16.1. `MTClient.URI`
+
+**Type:** : `string`
+
+**Default:** `"zkevm-prover:50061"`
+
+**Description:** URI is the server URI.
+
+**Example setting the default value** ("zkevm-prover:50061"):
+```
+[MTClient]
+URI="zkevm-prover:50061"
+```
+
+## 17. `[StateDB]`
+
+**Type:** : `object`
+**Description:** Configuration of the state database connection
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ---------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------- |
+| - [Name](#StateDB_Name ) | No | string | No | - | Database name |
+| - [User](#StateDB_User ) | No | string | No | - | Database User name |
+| - [Password](#StateDB_Password ) | No | string | No | - | Database Password of the user |
+| - [Host](#StateDB_Host ) | No | string | No | - | Host address of database |
+| - [Port](#StateDB_Port ) | No | string | No | - | Port Number of database |
+| - [EnableLog](#StateDB_EnableLog ) | No | boolean | No | - | EnableLog |
+| - [MaxConns](#StateDB_MaxConns ) | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
+
+### 17.1. `StateDB.Name`
+
+**Type:** : `string`
+
+**Default:** `"state_db"`
+
+**Description:** Database name
+
+**Example setting the default value** ("state_db"):
+```
+[StateDB]
+Name="state_db"
+```
+
+### 17.2. `StateDB.User`
+
+**Type:** : `string`
+
+**Default:** `"state_user"`
+
+**Description:** Database User name
+
+**Example setting the default value** ("state_user"):
+```
+[StateDB]
+User="state_user"
+```
+
+### 17.3. `StateDB.Password`
+
+**Type:** : `string`
+
+**Default:** `"state_password"`
+
+**Description:** Database Password of the user
+
+**Example setting the default value** ("state_password"):
+```
+[StateDB]
+Password="state_password"
+```
+
+### 17.4. `StateDB.Host`
+
+**Type:** : `string`
+
+**Default:** `"zkevm-state-db"`
+
+**Description:** Host address of database
+
+**Example setting the default value** ("zkevm-state-db"):
+```
+[StateDB]
+Host="zkevm-state-db"
+```
+
+### 17.5. `StateDB.Port`
+
+**Type:** : `string`
+
+**Default:** `"5432"`
+
+**Description:** Port Number of database
+
+**Example setting the default value** ("5432"):
+```
+[StateDB]
+Port="5432"
+```
+
+### 17.6. `StateDB.EnableLog`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** EnableLog
+
+**Example setting the default value** (false):
+```
+[StateDB]
+EnableLog=false
+```
+
+### 17.7. `StateDB.MaxConns`
+
+**Type:** : `integer`
+
+**Default:** `200`
+
+**Description:** MaxConns is the maximum number of connections in the pool.
+
+**Example setting the default value** (200):
+```
+[StateDB]
+MaxConns=200
+```
+
+## 18. `[Metrics]`
+
+**Type:** : `object`
+**Description:** Configuration of the metrics service, basically is where is going to publish the metrics
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| ------------------------------------------------ | ------- | ------- | ---------- | ---------- | ------------------------------------------------------------------- |
+| - [Host](#Metrics_Host ) | No | string | No | - | Host is the address to bind the metrics server |
+| - [Port](#Metrics_Port ) | No | integer | No | - | Port is the port to bind the metrics server |
+| - [Enabled](#Metrics_Enabled ) | No | boolean | No | - | Enabled is the flag to enable/disable the metrics server |
+| - [ProfilingHost](#Metrics_ProfilingHost ) | No | string | No | - | ProfilingHost is the address to bind the profiling server |
+| - [ProfilingPort](#Metrics_ProfilingPort ) | No | integer | No | - | ProfilingPort is the port to bind the profiling server |
+| - [ProfilingEnabled](#Metrics_ProfilingEnabled ) | No | boolean | No | - | ProfilingEnabled is the flag to enable/disable the profiling server |
+
+### 18.1. `Metrics.Host`
+
+**Type:** : `string`
+
+**Default:** `"0.0.0.0"`
+
+**Description:** Host is the address to bind the metrics server
+
+**Example setting the default value** ("0.0.0.0"):
+```
+[Metrics]
+Host="0.0.0.0"
+```
+
+### 18.2. `Metrics.Port`
+
+**Type:** : `integer`
+
+**Default:** `9091`
+
+**Description:** Port is the port to bind the metrics server
+
+**Example setting the default value** (9091):
+```
+[Metrics]
+Port=9091
+```
+
+### 18.3. `Metrics.Enabled`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** Enabled is the flag to enable/disable the metrics server
+
+**Example setting the default value** (false):
+```
+[Metrics]
+Enabled=false
+```
+
+### 18.4. `Metrics.ProfilingHost`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** ProfilingHost is the address to bind the profiling server
+
+**Example setting the default value** (""):
+```
+[Metrics]
+ProfilingHost=""
+```
+
+### 18.5. `Metrics.ProfilingPort`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** ProfilingPort is the port to bind the profiling server
+
+**Example setting the default value** (0):
+```
+[Metrics]
+ProfilingPort=0
+```
+
+### 18.6. `Metrics.ProfilingEnabled`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** ProfilingEnabled is the flag to enable/disable the profiling server
+
+**Example setting the default value** (false):
+```
+[Metrics]
+ProfilingEnabled=false
+```
+
+## 19. `[EventLog]`
+
+**Type:** : `object`
+**Description:** Configuration of the event database connection
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------- | ------- | ------ | ---------- | ---------- | -------------------------------- |
+| - [DB](#EventLog_DB ) | No | object | No | - | DB is the database configuration |
+
+### 19.1. `[EventLog.DB]`
+
+**Type:** : `object`
+**Description:** DB is the database configuration
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| -------------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------- |
+| - [Name](#EventLog_DB_Name ) | No | string | No | - | Database name |
+| - [User](#EventLog_DB_User ) | No | string | No | - | Database User name |
+| - [Password](#EventLog_DB_Password ) | No | string | No | - | Database Password of the user |
+| - [Host](#EventLog_DB_Host ) | No | string | No | - | Host address of database |
+| - [Port](#EventLog_DB_Port ) | No | string | No | - | Port Number of database |
+| - [EnableLog](#EventLog_DB_EnableLog ) | No | boolean | No | - | EnableLog |
+| - [MaxConns](#EventLog_DB_MaxConns ) | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
+
+#### 19.1.1. `EventLog.DB.Name`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** Database name
+
+**Example setting the default value** (""):
+```
+[EventLog.DB]
+Name=""
+```
+
+#### 19.1.2. `EventLog.DB.User`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** Database User name
+
+**Example setting the default value** (""):
+```
+[EventLog.DB]
+User=""
+```
+
+#### 19.1.3. `EventLog.DB.Password`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** Database Password of the user
+
+**Example setting the default value** (""):
+```
+[EventLog.DB]
+Password=""
+```
+
+#### 19.1.4. `EventLog.DB.Host`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** Host address of database
+
+**Example setting the default value** (""):
+```
+[EventLog.DB]
+Host=""
+```
+
+#### 19.1.5. `EventLog.DB.Port`
+
+**Type:** : `string`
+
+**Default:** `""`
+
+**Description:** Port Number of database
+
+**Example setting the default value** (""):
+```
+[EventLog.DB]
+Port=""
+```
+
+#### 19.1.6. `EventLog.DB.EnableLog`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** EnableLog
+
+**Example setting the default value** (false):
+```
+[EventLog.DB]
+EnableLog=false
+```
+
+#### 19.1.7. `EventLog.DB.MaxConns`
+
+**Type:** : `integer`
+
+**Default:** `0`
+
+**Description:** MaxConns is the maximum number of connections in the pool.
+
+**Example setting the default value** (0):
+```
+[EventLog.DB]
+MaxConns=0
+```
+
+## 20. `[HashDB]`
+
+**Type:** : `object`
+**Description:** Configuration of the hash database connection
+
+| Property | Pattern | Type | Deprecated | Definition | Title/Description |
+| --------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------- |
+| - [Name](#HashDB_Name ) | No | string | No | - | Database name |
+| - [User](#HashDB_User ) | No | string | No | - | Database User name |
+| - [Password](#HashDB_Password ) | No | string | No | - | Database Password of the user |
+| - [Host](#HashDB_Host ) | No | string | No | - | Host address of database |
+| - [Port](#HashDB_Port ) | No | string | No | - | Port Number of database |
+| - [EnableLog](#HashDB_EnableLog ) | No | boolean | No | - | EnableLog |
+| - [MaxConns](#HashDB_MaxConns ) | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
+
+### 20.1. `HashDB.Name`
+
+**Type:** : `string`
+
+**Default:** `"prover_db"`
+
+**Description:** Database name
+
+**Example setting the default value** ("prover_db"):
+```
+[HashDB]
+Name="prover_db"
+```
+
+### 20.2. `HashDB.User`
+
+**Type:** : `string`
+
+**Default:** `"prover_user"`
+
+**Description:** Database User name
+
+**Example setting the default value** ("prover_user"):
+```
+[HashDB]
+User="prover_user"
+```
+
+### 20.3. `HashDB.Password`
+
+**Type:** : `string`
+
+**Default:** `"prover_pass"`
+
+**Description:** Database Password of the user
+
+**Example setting the default value** ("prover_pass"):
+```
+[HashDB]
+Password="prover_pass"
+```
+
+### 20.4. `HashDB.Host`
+
+**Type:** : `string`
+
+**Default:** `"zkevm-state-db"`
+
+**Description:** Host address of database
+
+**Example setting the default value** ("zkevm-state-db"):
+```
+[HashDB]
+Host="zkevm-state-db"
+```
+
+### 20.5. `HashDB.Port`
+
+**Type:** : `string`
+
+**Default:** `"5432"`
+
+**Description:** Port Number of database
+
+**Example setting the default value** ("5432"):
+```
+[HashDB]
+Port="5432"
+```
+
+### 20.6. `HashDB.EnableLog`
+
+**Type:** : `boolean`
+
+**Default:** `false`
+
+**Description:** EnableLog
+
+**Example setting the default value** (false):
+```
+[HashDB]
+EnableLog=false
+```
+
+### 20.7. `HashDB.MaxConns`
+
+**Type:** : `integer`
+
+**Default:** `200`
+
+**Description:** MaxConns is the maximum number of connections in the pool.
+
+**Example setting the default value** (200):
+```
+[HashDB]
+MaxConns=200
+```
+
+----------------------------------------------------------------------------------------------------------------------------
+Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans)
diff --git a/docs/config-file/node-config-schema.json b/docs/config-file/node-config-schema.json
new file mode 100644
index 0000000000..bed2336c99
--- /dev/null
+++ b/docs/config-file/node-config-schema.json
@@ -0,0 +1,1256 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "github.com/0xPolygonHermez/zkevm-node/config/config",
+ "properties": {
+ "IsTrustedSequencer": {
+ "type": "boolean",
+ "description": "This define is a trusted node (`true`) or a permission less (`false`). If you don't known\nset to `false`",
+ "default": false
+ },
+ "ForkUpgradeBatchNumber": {
+ "type": "integer",
+ "description": "Last batch number before a forkid change (fork upgrade). That implies that\ngreater batch numbers are going to be trusted but no virtualized neither verified.\nSo after the batch number `ForkUpgradeBatchNumber` is virtualized and verified you could update\nthe system (SC,...) to new forkId and remove this value to allow the system to keep\nVirtualizing and verifying the new batchs.\nCheck issue [#2236](https://github.com/0xPolygonHermez/zkevm-node/issues/2236) to known more\nThis value overwrite `SequenceSender.ForkUpgradeBatchNumber`",
+ "default": 0
+ },
+ "ForkUpgradeNewForkId": {
+ "type": "integer",
+ "description": "Which is the new forkId",
+ "default": 0
+ },
+ "Log": {
+ "properties": {
+ "Environment": {
+ "type": "string",
+ "enum": [
+ "production",
+ "development"
+ ],
+ "description": "Environment defining the log format (\"production\" or \"development\").\nIn development mode enables development mode (which makes DPanicLevel logs panic), uses a console encoder, writes to standard error, and disables sampling. Stacktraces are automatically included on logs of WarnLevel and above.\nCheck [here](https://pkg.go.dev/go.uber.org/zap@v1.24.0#NewDevelopmentConfig)",
+ "default": "development"
+ },
+ "Level": {
+ "type": "string",
+ "enum": [
+ "debug",
+ "info",
+ "warn",
+ "error",
+ "dpanic",
+ "panic",
+ "fatal"
+ ],
+ "description": "Level of log. As lower value more logs are going to be generated",
+ "default": "info"
+ },
+ "Outputs": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array",
+ "description": "Outputs",
+ "default": [
+ "stderr"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configure Log level for all the services, allow also to store the logs in a file"
+ },
+ "Etherman": {
+ "properties": {
+ "URL": {
+ "type": "string",
+ "description": "URL is the URL of the Ethereum node for L1",
+ "default": "http://localhost:8545"
+ },
+ "MultiGasProvider": {
+ "type": "boolean",
+ "description": "allow that L1 gas price calculation use multiples sources",
+ "default": false
+ },
+ "Etherscan": {
+ "properties": {
+ "ApiKey": {
+ "type": "string",
+ "description": "Need API key to use etherscan, if it's empty etherscan is not used",
+ "default": ""
+ },
+ "Url": {
+ "type": "string",
+ "description": "URL of the etherscan API. Overwritten with a hardcoded URL: \"https://api.etherscan.io/api?module=gastracker\u0026action=gasoracle\u0026apikey=\"",
+ "default": ""
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration for use Etherscan as used as gas provider, basically it needs the API-KEY"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the etherman (client for access L1)"
+ },
+ "EthTxManager": {
+ "properties": {
+ "FrequencyToMonitorTxs": {
+ "type": "string",
+ "title": "Duration",
+ "description": "FrequencyToMonitorTxs frequency of the resending failed txs",
+ "default": "1s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "WaitTxToBeMined": {
+ "type": "string",
+ "title": "Duration",
+ "description": "WaitTxToBeMined time to wait after transaction was sent to the ethereum",
+ "default": "2m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "PrivateKeys": {
+ "items": {
+ "properties": {
+ "Path": {
+ "type": "string",
+ "description": "Path is the file path for the key store file"
+ },
+ "Password": {
+ "type": "string",
+ "description": "Password is the password to decrypt the key store file"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "KeystoreFileConfig has all the information needed to load a private key from a key store file"
+ },
+ "type": "array",
+ "description": "PrivateKeys defines all the key store files that are going\nto be read in order to provide the private keys to sign the L1 txs"
+ },
+ "ForcedGas": {
+ "type": "integer",
+ "description": "ForcedGas is the amount of gas to be forced in case of gas estimation error",
+ "default": 0
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration for ethereum transaction manager"
+ },
+ "Pool": {
+ "properties": {
+ "IntervalToRefreshBlockedAddresses": {
+ "type": "string",
+ "title": "Duration",
+ "description": "IntervalToRefreshBlockedAddresses is the time it takes to sync the\nblocked address list from db to memory",
+ "default": "5m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "IntervalToRefreshGasPrices": {
+ "type": "string",
+ "title": "Duration",
+ "description": "IntervalToRefreshGasPrices is the time to wait to refresh the gas prices",
+ "default": "5s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "MaxTxBytesSize": {
+ "type": "integer",
+ "description": "MaxTxBytesSize is the max size of a transaction in bytes",
+ "default": 100132
+ },
+ "MaxTxDataBytesSize": {
+ "type": "integer",
+ "description": "MaxTxDataBytesSize is the max size of the data field of a transaction in bytes",
+ "default": 100000
+ },
+ "DB": {
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Database name",
+ "default": "pool_db"
+ },
+ "User": {
+ "type": "string",
+ "description": "Database User name",
+ "default": "pool_user"
+ },
+ "Password": {
+ "type": "string",
+ "description": "Database Password of the user",
+ "default": "pool_password"
+ },
+ "Host": {
+ "type": "string",
+ "description": "Host address of database",
+ "default": "zkevm-pool-db"
+ },
+ "Port": {
+ "type": "string",
+ "description": "Port Number of database",
+ "default": "5432"
+ },
+ "EnableLog": {
+ "type": "boolean",
+ "description": "EnableLog",
+ "default": false
+ },
+ "MaxConns": {
+ "type": "integer",
+ "description": "MaxConns is the maximum number of connections in the pool.",
+ "default": 200
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "DB is the database configuration"
+ },
+ "DefaultMinGasPriceAllowed": {
+ "type": "integer",
+ "description": "DefaultMinGasPriceAllowed is the default min gas price to suggest",
+ "default": 1000000000
+ },
+ "MinAllowedGasPriceInterval": {
+ "type": "string",
+ "title": "Duration",
+ "description": "MinAllowedGasPriceInterval is the interval to look back of the suggested min gas price for a tx",
+ "default": "5m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "PollMinAllowedGasPriceInterval": {
+ "type": "string",
+ "title": "Duration",
+ "description": "PollMinAllowedGasPriceInterval is the interval to poll the suggested min gas price for a tx",
+ "default": "15s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "AccountQueue": {
+ "type": "integer",
+ "description": "AccountQueue represents the maximum number of non-executable transaction slots permitted per account",
+ "default": 64
+ },
+ "GlobalQueue": {
+ "type": "integer",
+ "description": "GlobalQueue represents the maximum number of non-executable transaction slots for all accounts",
+ "default": 1024
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Pool service configuration"
+ },
+ "RPC": {
+ "properties": {
+ "Host": {
+ "type": "string",
+ "description": "Host defines the network adapter that will be used to serve the HTTP requests",
+ "default": "0.0.0.0"
+ },
+ "Port": {
+ "type": "integer",
+ "description": "Port defines the port to serve the endpoints via HTTP",
+ "default": 8545
+ },
+ "ReadTimeout": {
+ "type": "string",
+ "title": "Duration",
+ "description": "ReadTimeout is the HTTP server read timeout\ncheck net/http.server.ReadTimeout and net/http.server.ReadHeaderTimeout",
+ "default": "1m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "WriteTimeout": {
+ "type": "string",
+ "title": "Duration",
+ "description": "WriteTimeout is the HTTP server write timeout\ncheck net/http.server.WriteTimeout",
+ "default": "1m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "MaxRequestsPerIPAndSecond": {
+ "type": "number",
+ "description": "MaxRequestsPerIPAndSecond defines how much requests a single IP can\nsend within a single second",
+ "default": 500
+ },
+ "SequencerNodeURI": {
+ "type": "string",
+ "description": "SequencerNodeURI is used allow Non-Sequencer nodes\nto relay transactions to the Sequencer node",
+ "default": ""
+ },
+ "MaxCumulativeGasUsed": {
+ "type": "integer",
+ "description": "MaxCumulativeGasUsed is the max gas allowed per batch",
+ "default": 0
+ },
+ "WebSockets": {
+ "properties": {
+ "Enabled": {
+ "type": "boolean",
+ "description": "Enabled defines if the WebSocket requests are enabled or disabled",
+ "default": true
+ },
+ "Host": {
+ "type": "string",
+ "description": "Host defines the network adapter that will be used to serve the WS requests",
+ "default": "0.0.0.0"
+ },
+ "Port": {
+ "type": "integer",
+ "description": "Port defines the port to serve the endpoints via WS",
+ "default": 8546
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "WebSockets configuration"
+ },
+ "EnableL2SuggestedGasPricePolling": {
+ "type": "boolean",
+ "description": "EnableL2SuggestedGasPricePolling enables polling of the L2 gas price to block tx in the RPC with lower gas price.",
+ "default": true
+ },
+ "TraceBatchUseHTTPS": {
+ "type": "boolean",
+ "description": "TraceBatchUseHTTPS enables, in the debug_traceBatchByNum endpoint, the use of the HTTPS protocol (instead of HTTP)\nto do the parallel requests to RPC.debug_traceTransaction endpoint",
+ "default": true
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration for RPC service. THis one offers a extended Ethereum JSON-RPC API interface to interact with the node"
+ },
+ "Synchronizer": {
+ "properties": {
+ "SyncInterval": {
+ "type": "string",
+ "title": "Duration",
+ "description": "SyncInterval is the delay interval between reading new rollup information",
+ "default": "1s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "SyncChunkSize": {
+ "type": "integer",
+ "description": "SyncChunkSize is the number of blocks to sync on each chunk",
+ "default": 100
+ },
+ "TrustedSequencerURL": {
+ "type": "string",
+ "description": "TrustedSequencerURL is the rpc url to connect and sync the trusted state",
+ "default": ""
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of service `Syncrhonizer`. For this service is also really important the value of `IsTrustedSequencer`\nbecause depending of this values is going to ask to a trusted node for trusted transactions or not"
+ },
+ "Sequencer": {
+ "properties": {
+ "WaitPeriodPoolIsEmpty": {
+ "type": "string",
+ "title": "Duration",
+ "description": "WaitPeriodPoolIsEmpty is the time the sequencer waits until\ntrying to add new txs to the state",
+ "default": "1s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "BlocksAmountForTxsToBeDeleted": {
+ "type": "integer",
+ "description": "BlocksAmountForTxsToBeDeleted is blocks amount after which txs will be deleted from the pool",
+ "default": 100
+ },
+ "FrequencyToCheckTxsForDelete": {
+ "type": "string",
+ "title": "Duration",
+ "description": "FrequencyToCheckTxsForDelete is frequency with which txs will be checked for deleting",
+ "default": "12h0m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "MaxTxsPerBatch": {
+ "type": "integer",
+ "description": "MaxTxsPerBatch is the maximum amount of transactions in the batch",
+ "default": 300
+ },
+ "MaxBatchBytesSize": {
+ "type": "integer",
+ "description": "MaxBatchBytesSize is the maximum batch size in bytes\n(subtracted bits of all types.Sequence fields excluding BatchL2Data from MaxTxSizeForL1)",
+ "default": 120000
+ },
+ "MaxCumulativeGasUsed": {
+ "type": "integer",
+ "description": "MaxCumulativeGasUsed is max gas amount used by batch",
+ "default": 30000000
+ },
+ "MaxKeccakHashes": {
+ "type": "integer",
+ "description": "MaxKeccakHashes is max keccak hashes used by batch",
+ "default": 2145
+ },
+ "MaxPoseidonHashes": {
+ "type": "integer",
+ "description": "MaxPoseidonHashes is max poseidon hashes batch can handle",
+ "default": 252357
+ },
+ "MaxPoseidonPaddings": {
+ "type": "integer",
+ "description": "MaxPoseidonPaddings is max poseidon paddings batch can handle",
+ "default": 135191
+ },
+ "MaxMemAligns": {
+ "type": "integer",
+ "description": "MaxMemAligns is max mem aligns batch can handle",
+ "default": 236585
+ },
+ "MaxArithmetics": {
+ "type": "integer",
+ "description": "MaxArithmetics is max arithmetics batch can handle",
+ "default": 236585
+ },
+ "MaxBinaries": {
+ "type": "integer",
+ "description": "MaxBinaries is max binaries batch can handle",
+ "default": 473170
+ },
+ "MaxSteps": {
+ "type": "integer",
+ "description": "MaxSteps is max steps batch can handle",
+ "default": 7570538
+ },
+ "WeightBatchBytesSize": {
+ "type": "integer",
+ "description": "WeightBatchBytesSize is the cost weight for the BatchBytesSize batch resource",
+ "default": 1
+ },
+ "WeightCumulativeGasUsed": {
+ "type": "integer",
+ "description": "WeightCumulativeGasUsed is the cost weight for the CumulativeGasUsed batch resource",
+ "default": 1
+ },
+ "WeightKeccakHashes": {
+ "type": "integer",
+ "description": "WeightKeccakHashes is the cost weight for the KeccakHashes batch resource",
+ "default": 1
+ },
+ "WeightPoseidonHashes": {
+ "type": "integer",
+ "description": "WeightPoseidonHashes is the cost weight for the PoseidonHashes batch resource",
+ "default": 1
+ },
+ "WeightPoseidonPaddings": {
+ "type": "integer",
+ "description": "WeightPoseidonPaddings is the cost weight for the PoseidonPaddings batch resource",
+ "default": 1
+ },
+ "WeightMemAligns": {
+ "type": "integer",
+ "description": "WeightMemAligns is the cost weight for the MemAligns batch resource",
+ "default": 1
+ },
+ "WeightArithmetics": {
+ "type": "integer",
+ "description": "WeightArithmetics is the cost weight for the Arithmetics batch resource",
+ "default": 1
+ },
+ "WeightBinaries": {
+ "type": "integer",
+ "description": "WeightBinaries is the cost weight for the Binaries batch resource",
+ "default": 1
+ },
+ "WeightSteps": {
+ "type": "integer",
+ "description": "WeightSteps is the cost weight for the Steps batch resource",
+ "default": 1
+ },
+ "TxLifetimeCheckTimeout": {
+ "type": "string",
+ "title": "Duration",
+ "description": "TxLifetimeCheckTimeout is the time the sequencer waits to check txs lifetime",
+ "default": "10m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "MaxTxLifetime": {
+ "type": "string",
+ "title": "Duration",
+ "description": "MaxTxLifetime is the time a tx can be in the sequencer memory",
+ "default": "3h0m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "Finalizer": {
+ "properties": {
+ "GERDeadlineTimeout": {
+ "type": "string",
+ "title": "Duration",
+ "description": "GERDeadlineTimeout is the time the finalizer waits after receiving closing signal to update Global Exit Root",
+ "default": "5s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "ForcedBatchDeadlineTimeout": {
+ "type": "string",
+ "title": "Duration",
+ "description": "ForcedBatchDeadlineTimeout is the time the finalizer waits after receiving closing signal to process Forced Batches",
+ "default": "1m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "SleepDuration": {
+ "type": "string",
+ "title": "Duration",
+ "description": "SleepDuration is the time the finalizer sleeps between each iteration, if there are no transactions to be processed",
+ "default": "100ms",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "ResourcePercentageToCloseBatch": {
+ "type": "integer",
+ "description": "ResourcePercentageToCloseBatch is the percentage window of the resource left out for the batch to be closed",
+ "default": 10
+ },
+ "GERFinalityNumberOfBlocks": {
+ "type": "integer",
+ "description": "GERFinalityNumberOfBlocks is number of blocks to consider GER final",
+ "default": 64
+ },
+ "ClosingSignalsManagerWaitForCheckingL1Timeout": {
+ "type": "string",
+ "title": "Duration",
+ "description": "ClosingSignalsManagerWaitForCheckingL1Timeout is used by the closing signals manager to wait for its operation",
+ "default": "10s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "ClosingSignalsManagerWaitForCheckingGER": {
+ "type": "string",
+ "title": "Duration",
+ "description": "ClosingSignalsManagerWaitForCheckingGER is used by the closing signals manager to wait for its operation",
+ "default": "10s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "ClosingSignalsManagerWaitForCheckingForcedBatches": {
+ "type": "string",
+ "title": "Duration",
+ "description": "ClosingSignalsManagerWaitForCheckingL1Timeout is used by the closing signals manager to wait for its operation",
+ "default": "10s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "ForcedBatchesFinalityNumberOfBlocks": {
+ "type": "integer",
+ "description": "ForcedBatchesFinalityNumberOfBlocks is number of blocks to consider GER final",
+ "default": 64
+ },
+ "TimestampResolution": {
+ "type": "string",
+ "title": "Duration",
+ "description": "TimestampResolution is the resolution of the timestamp used to close a batch",
+ "default": "10s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "StopSequencerOnBatchNum": {
+ "type": "integer",
+ "description": "StopSequencerOnBatchNum specifies the batch number where the Sequencer will stop to process more transactions and generate new batches. The Sequencer will halt after it closes the batch equal to this number",
+ "default": 0
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Finalizer's specific config properties"
+ },
+ "DBManager": {
+ "properties": {
+ "PoolRetrievalInterval": {
+ "type": "string",
+ "title": "Duration",
+ "default": "500ms",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "L2ReorgRetrievalInterval": {
+ "type": "string",
+ "title": "Duration",
+ "default": "5s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "DBManager's specific config properties"
+ },
+ "Worker": {
+ "properties": {
+ "ResourceCostMultiplier": {
+ "type": "number",
+ "description": "ResourceCostMultiplier is the multiplier for the resource cost",
+ "default": 1000
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Worker's specific config properties"
+ },
+ "EffectiveGasPrice": {
+ "properties": {
+ "MaxBreakEvenGasPriceDeviationPercentage": {
+ "type": "integer",
+ "description": "MaxBreakEvenGasPriceDeviationPercentage is the max allowed deviation percentage BreakEvenGasPrice on re-calculation",
+ "default": 10
+ },
+ "L1GasPriceFactor": {
+ "type": "number",
+ "description": "L1GasPriceFactor is the percentage of the L1 gas price that will be used as the L2 min gas price",
+ "default": 0.25
+ },
+ "ByteGasCost": {
+ "type": "integer",
+ "description": "ByteGasCost is the gas cost per byte",
+ "default": 16
+ },
+ "MarginFactor": {
+ "type": "number",
+ "description": "MarginFactor is the margin factor percentage to be added to the L2 min gas price",
+ "default": 1
+ },
+ "Enabled": {
+ "type": "boolean",
+ "description": "Enabled is a flag to enable/disable the effective gas price",
+ "default": false
+ },
+ "DefaultMinGasPriceAllowed": {
+ "type": "integer",
+ "description": "DefaultMinGasPriceAllowed is the default min gas price to suggest\nThis value is assigned from [Pool].DefaultMinGasPriceAllowed",
+ "default": 0
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "EffectiveGasPrice is the config for the gas price"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the sequencer service"
+ },
+ "SequenceSender": {
+ "properties": {
+ "WaitPeriodSendSequence": {
+ "type": "string",
+ "title": "Duration",
+ "description": "WaitPeriodSendSequence is the time the sequencer waits until\ntrying to send a sequence to L1",
+ "default": "5s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "LastBatchVirtualizationTimeMaxWaitPeriod": {
+ "type": "string",
+ "title": "Duration",
+ "description": "LastBatchVirtualizationTimeMaxWaitPeriod is time since sequences should be sent",
+ "default": "5s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "MaxTxSizeForL1": {
+ "type": "integer",
+ "description": "MaxTxSizeForL1 is the maximum size a single transaction can have. This field has\nnon-trivial consequences: larger transactions than 128KB are significantly harder and\nmore expensive to propagate; larger transactions also take more resources\nto validate whether they fit into the pool or not.",
+ "default": 131072
+ },
+ "SenderAddress": {
+ "type": "string",
+ "description": "SenderAddress defines which private key the eth tx manager needs to use\nto sign the L1 txs",
+ "default": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"
+ },
+ "PrivateKeys": {
+ "items": {
+ "properties": {
+ "Path": {
+ "type": "string",
+ "description": "Path is the file path for the key store file"
+ },
+ "Password": {
+ "type": "string",
+ "description": "Password is the password to decrypt the key store file"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "KeystoreFileConfig has all the information needed to load a private key from a key store file"
+ },
+ "type": "array",
+ "description": "PrivateKeys defines all the key store files that are going\nto be read in order to provide the private keys to sign the L1 txs",
+ "default": [
+ {
+ "Path": "/pk/sequencer.keystore",
+ "Password": "testonly"
+ }
+ ]
+ },
+ "ForkUpgradeBatchNumber": {
+ "type": "integer",
+ "description": "Batch number where there is a forkid change (fork upgrade)",
+ "default": 0
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the sequence sender service"
+ },
+ "Aggregator": {
+ "properties": {
+ "Host": {
+ "type": "string",
+ "description": "Host for the grpc server",
+ "default": "0.0.0.0"
+ },
+ "Port": {
+ "type": "integer",
+ "description": "Port for the grpc server",
+ "default": 50081
+ },
+ "RetryTime": {
+ "type": "string",
+ "title": "Duration",
+ "description": "RetryTime is the time the aggregator main loop sleeps if there are no proofs to aggregate\nor batches to generate proofs. It is also used in the isSynced loop",
+ "default": "5s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "VerifyProofInterval": {
+ "type": "string",
+ "title": "Duration",
+ "description": "VerifyProofInterval is the interval of time to verify/send an proof in L1",
+ "default": "1m30s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "ProofStatePollingInterval": {
+ "type": "string",
+ "title": "Duration",
+ "description": "ProofStatePollingInterval is the interval time to polling the prover about the generation state of a proof",
+ "default": "5s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "TxProfitabilityCheckerType": {
+ "type": "string",
+ "description": "TxProfitabilityCheckerType type for checking is it profitable for aggregator to validate batch\npossible values: base/acceptall",
+ "default": "acceptall"
+ },
+ "TxProfitabilityMinReward": {
+ "properties": {},
+ "additionalProperties": false,
+ "type": "object",
+ "description": "TxProfitabilityMinReward min reward for base tx profitability checker when aggregator will validate batch\nthis parameter is used for the base tx profitability checker"
+ },
+ "IntervalAfterWhichBatchConsolidateAnyway": {
+ "type": "string",
+ "title": "Duration",
+ "description": "IntervalAfterWhichBatchConsolidateAnyway this is interval for the main sequencer, that will check if there is no transactions",
+ "default": "0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "ChainID": {
+ "type": "integer",
+ "description": "ChainID is the L2 ChainID provided by the Network Config",
+ "default": 0
+ },
+ "ForkId": {
+ "type": "integer",
+ "description": "ForkID is the L2 ForkID provided by the Network Config",
+ "default": 0
+ },
+ "SenderAddress": {
+ "type": "string",
+ "description": "SenderAddress defines which private key the eth tx manager needs to use\nto sign the L1 txs",
+ "default": ""
+ },
+ "CleanupLockedProofsInterval": {
+ "type": "string",
+ "title": "Duration",
+ "description": "CleanupLockedProofsInterval is the interval of time to clean up locked proofs.",
+ "default": "2m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "GeneratingProofCleanupThreshold": {
+ "type": "string",
+ "description": "GeneratingProofCleanupThreshold represents the time interval after\nwhich a proof in generating state is considered to be stuck and\nallowed to be cleared.",
+ "default": "10m"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the aggregator service"
+ },
+ "NetworkConfig": {
+ "properties": {
+ "l1Config": {
+ "properties": {
+ "chainId": {
+ "type": "integer",
+ "description": "Chain ID of the L1 network",
+ "default": 0
+ },
+ "polygonZkEVMAddress": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array",
+ "maxItems": 20,
+ "minItems": 20,
+ "description": "Address of the L1 contract"
+ },
+ "maticTokenAddress": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array",
+ "maxItems": 20,
+ "minItems": 20,
+ "description": "Address of the L1 Matic token Contract"
+ },
+ "polygonZkEVMGlobalExitRootAddress": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array",
+ "maxItems": 20,
+ "minItems": 20,
+ "description": "Address of the L1 GlobalExitRootManager contract"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "L1: Configuration related to L1"
+ },
+ "L2GlobalExitRootManagerAddr": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array",
+ "maxItems": 20,
+ "minItems": 20,
+ "description": "DEPRECATED L2: address of the `PolygonZkEVMGlobalExitRootL2 proxy` smart contract"
+ },
+ "L2BridgeAddr": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array",
+ "maxItems": 20,
+ "minItems": 20,
+ "description": "L2: address of the `PolygonZkEVMBridge proxy` smart contract"
+ },
+ "Genesis": {
+ "properties": {
+ "GenesisBlockNum": {
+ "type": "integer",
+ "description": "GenesisBlockNum is the block number where the polygonZKEVM smc was deployed on L1",
+ "default": 0
+ },
+ "Root": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array",
+ "maxItems": 32,
+ "minItems": 32,
+ "description": "Root hash of the genesis block"
+ },
+ "GenesisActions": {
+ "items": {
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "type": {
+ "type": "integer"
+ },
+ "storagePosition": {
+ "type": "string"
+ },
+ "bytecode": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "root": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "GenesisAction represents one of the values set on the SMT during genesis."
+ },
+ "type": "array",
+ "description": "Contracts to be deployed to L2"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "L1: Genesis of the rollup, first block number and root"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the genesis of the network. This is used to known the initial state of the network"
+ },
+ "L2GasPriceSuggester": {
+ "properties": {
+ "Type": {
+ "type": "string",
+ "default": "follower"
+ },
+ "DefaultGasPriceWei": {
+ "type": "integer",
+ "description": "DefaultGasPriceWei is used to set the gas price to be used by the default gas pricer or as minimim gas price by the follower gas pricer.",
+ "default": 2000000000
+ },
+ "MaxGasPriceWei": {
+ "type": "integer",
+ "description": "MaxGasPriceWei is used to limit the gas price returned by the follower gas pricer to a maximum value. It is ignored if 0.",
+ "default": 0
+ },
+ "MaxPrice": {
+ "properties": {},
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "IgnorePrice": {
+ "properties": {},
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "CheckBlocks": {
+ "type": "integer",
+ "default": 0
+ },
+ "Percentile": {
+ "type": "integer",
+ "default": 0
+ },
+ "UpdatePeriod": {
+ "type": "string",
+ "title": "Duration",
+ "default": "10s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "CleanHistoryPeriod": {
+ "type": "string",
+ "title": "Duration",
+ "default": "1h0m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "CleanHistoryTimeRetention": {
+ "type": "string",
+ "title": "Duration",
+ "default": "5m0s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "Factor": {
+ "type": "number",
+ "default": 0.15
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the gas price suggester service"
+ },
+ "Executor": {
+ "properties": {
+ "URI": {
+ "type": "string",
+ "default": "zkevm-prover:50071"
+ },
+ "MaxResourceExhaustedAttempts": {
+ "type": "integer",
+ "description": "MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion",
+ "default": 3
+ },
+ "WaitOnResourceExhaustion": {
+ "type": "string",
+ "title": "Duration",
+ "description": "WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion",
+ "default": "1s",
+ "examples": [
+ "1m",
+ "300ms"
+ ]
+ },
+ "MaxGRPCMessageSize": {
+ "type": "integer",
+ "default": 100000000
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the executor service"
+ },
+ "MTClient": {
+ "properties": {
+ "URI": {
+ "type": "string",
+ "description": "URI is the server URI.",
+ "default": "zkevm-prover:50061"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the merkle tree client service. Not use in the node, only for testing"
+ },
+ "StateDB": {
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Database name",
+ "default": "state_db"
+ },
+ "User": {
+ "type": "string",
+ "description": "Database User name",
+ "default": "state_user"
+ },
+ "Password": {
+ "type": "string",
+ "description": "Database Password of the user",
+ "default": "state_password"
+ },
+ "Host": {
+ "type": "string",
+ "description": "Host address of database",
+ "default": "zkevm-state-db"
+ },
+ "Port": {
+ "type": "string",
+ "description": "Port Number of database",
+ "default": "5432"
+ },
+ "EnableLog": {
+ "type": "boolean",
+ "description": "EnableLog",
+ "default": false
+ },
+ "MaxConns": {
+ "type": "integer",
+ "description": "MaxConns is the maximum number of connections in the pool.",
+ "default": 200
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the state database connection"
+ },
+ "Metrics": {
+ "properties": {
+ "Host": {
+ "type": "string",
+ "description": "Host is the address to bind the metrics server",
+ "default": "0.0.0.0"
+ },
+ "Port": {
+ "type": "integer",
+ "description": "Port is the port to bind the metrics server",
+ "default": 9091
+ },
+ "Enabled": {
+ "type": "boolean",
+ "description": "Enabled is the flag to enable/disable the metrics server",
+ "default": false
+ },
+ "ProfilingHost": {
+ "type": "string",
+ "description": "ProfilingHost is the address to bind the profiling server",
+ "default": ""
+ },
+ "ProfilingPort": {
+ "type": "integer",
+ "description": "ProfilingPort is the port to bind the profiling server",
+ "default": 0
+ },
+ "ProfilingEnabled": {
+ "type": "boolean",
+ "description": "ProfilingEnabled is the flag to enable/disable the profiling server",
+ "default": false
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the metrics service, basically is where is going to publish the metrics"
+ },
+ "EventLog": {
+ "properties": {
+ "DB": {
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Database name",
+ "default": ""
+ },
+ "User": {
+ "type": "string",
+ "description": "Database User name",
+ "default": ""
+ },
+ "Password": {
+ "type": "string",
+ "description": "Database Password of the user",
+ "default": ""
+ },
+ "Host": {
+ "type": "string",
+ "description": "Host address of database",
+ "default": ""
+ },
+ "Port": {
+ "type": "string",
+ "description": "Port Number of database",
+ "default": ""
+ },
+ "EnableLog": {
+ "type": "boolean",
+ "description": "EnableLog",
+ "default": false
+ },
+ "MaxConns": {
+ "type": "integer",
+ "description": "MaxConns is the maximum number of connections in the pool.",
+ "default": 0
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "DB is the database configuration"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the event database connection"
+ },
+ "HashDB": {
+ "properties": {
+ "Name": {
+ "type": "string",
+ "description": "Database name",
+ "default": "prover_db"
+ },
+ "User": {
+ "type": "string",
+ "description": "Database User name",
+ "default": "prover_user"
+ },
+ "Password": {
+ "type": "string",
+ "description": "Database Password of the user",
+ "default": "prover_pass"
+ },
+ "Host": {
+ "type": "string",
+ "description": "Host address of database",
+ "default": "zkevm-state-db"
+ },
+ "Port": {
+ "type": "string",
+ "description": "Port Number of database",
+ "default": "5432"
+ },
+ "EnableLog": {
+ "type": "boolean",
+ "description": "EnableLog",
+ "default": false
+ },
+ "MaxConns": {
+ "type": "integer",
+ "description": "MaxConns is the maximum number of connections in the pool.",
+ "default": 200
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Configuration of the hash database connection"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "description": "Config represents the configuration of the entire Hermez Node The file is TOML format You could find some examples:\n\n[TOML format]: https://en.wikipedia.org/wiki/TOML"
+}
\ No newline at end of file
diff --git a/docs/config-file/schema_doc.css b/docs/config-file/schema_doc.css
new file mode 100644
index 0000000000..7896225bee
--- /dev/null
+++ b/docs/config-file/schema_doc.css
@@ -0,0 +1,192 @@
+body {
+ font: 16px/1.5em "Overpass", "Open Sans", Helvetica, sans-serif;
+ color: #333;
+ font-weight: 300;
+ padding: 40px;
+}
+
+.btn.btn-link {
+ font-size: 18px;
+ user-select: text;
+}
+
+.jsfh-animated-property {
+ animation: eclair;
+ animation-iteration-count: 1;
+ animation-fill-mode: forwards;
+ animation-duration: .75s;
+
+}
+
+@keyframes eclair {
+ 0%,100% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(1.03);
+ }
+}
+
+.btn.btn-primary {
+ margin: 10px;
+}
+
+.btn.example-show.collapsed:before {
+ content: "show"
+}
+
+.btn.example-show:before {
+ content: "hide"
+}
+
+.description.collapse:not(.show) {
+ max-height: 100px !important;
+ overflow: hidden;
+
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+}
+
+.description.collapsing {
+ min-height: 100px !important;
+}
+
+.collapse-description-link.collapsed:after {
+ content: '+ Read More';
+}
+
+.collapse-description-link:not(.collapsed):after {
+ content: '- Read Less';
+}
+
+.badge {
+ font-size: 100%;
+ margin-bottom: 0.5rem;
+ margin-top: 0.5rem;
+}
+
+.badge.value-type {
+ font-size: 120%;
+ margin-left: 5px;
+ margin-right: 5px;
+ margin-bottom: 10px;
+}
+
+
+.badge.default-value {
+ font-size: 120%;
+ margin-left: 5px;
+ margin-bottom: 10px;
+}
+
+.badge.restriction {
+ display: inline-block;
+}
+
+.badge.required-property,.badge.deprecated-property,.badge.pattern-property,.badge.no-additional {
+ font-size: 100%;
+ margin-left: 10px;
+}
+
+.accordion div.card:only-child {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+
+.examples {
+ padding: 1rem !important;
+}
+
+.examples pre {
+ margin-bottom: 0;
+}
+
+.highlight.jumbotron {
+ padding: 1rem !important;
+}
+
+.generated-by-footer {
+ margin-top: 1em;
+ text-align: right;
+}
+
+.breadcrumbs {
+ font-family: monospace;
+ background: #e9ecef;
+ font-size: 100%;
+ margin-left: 10px;
+ font-weight: 500;
+ display: inline-block;
+ margin: 20px
+}
+
+/* From https://github.com/richleland/pygments-css/blob/master/friendly.css, see https://github.com/trentm/python-markdown2/wiki/fenced-code-blocks */
+.highlight { background: #e9ecef; } /* Changed from #f0f0f0 in the original style to be the same as bootstrap's jumbotron */
+.highlight .hll { background-color: #ffffcc }
+.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #40a070 } /* Literal.Number */
+.highlight .s { color: #4070a0 } /* Literal.String */
+.highlight .na { color: #4070a0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60add5 } /* Name.Constant */
+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #06287e } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #bb60d5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #40a070 } /* Literal.Number.Bin */
+.highlight .mf { color: #40a070 } /* Literal.Number.Float */
+.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
+.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
+.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
+.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
+.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #06287e } /* Name.Function.Magic */
+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
+.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
diff --git a/docs/config-file/schema_doc.min.js b/docs/config-file/schema_doc.min.js
new file mode 100644
index 0000000000..17eceaf59a
--- /dev/null
+++ b/docs/config-file/schema_doc.min.js
@@ -0,0 +1 @@
+$(document).on("click",'a[href^="#"]',function(event){event.preventDefault();history.pushState({},"",this.href)});function flashElement(elementId){myElement=document.getElementById(elementId);myElement.classList.add("jsfh-animated-property");setTimeout(function(){myElement.classList.remove("jsfh-animated-property")},1e3)}function setAnchor(anchorLinkDestination){history.pushState({},"",anchorLinkDestination)}function anchorOnLoad(){let linkTarget=decodeURIComponent(window.location.hash.split("?")[0].split("&")[0]);if(linkTarget[0]==="#"){linkTarget=linkTarget.substr(1)}if(linkTarget.length>0){anchorLink(linkTarget)}}function anchorLink(linkTarget){const target=$("#"+linkTarget);target.parents().addBack().filter(".collapse:not(.show), .tab-pane, [role='tab']").each(function(index){if($(this).hasClass("collapse")){$(this).collapse("show")}else if($(this).hasClass("tab-pane")){const tabToShow=$("a[href='#"+$(this).attr("id")+"']");if(tabToShow){tabToShow.tab("show")}}else if($(this).attr("role")==="tab"){$(this).tab("show")}});setTimeout(function(){let targetElement=document.getElementById(linkTarget);if(targetElement){targetElement.scrollIntoView({block:"center",behavior:"smooth"});setTimeout(function(){flashElement(linkTarget)},500)}},1e3)}
\ No newline at end of file
diff --git a/docs/config-file/templates/js/badge_type.html b/docs/config-file/templates/js/badge_type.html
new file mode 100644
index 0000000000..32b3ec5b99
--- /dev/null
+++ b/docs/config-file/templates/js/badge_type.html
@@ -0,0 +1,14 @@
+{%- if type_name == "string" -%}
+ {%- if schema.kw_min_length -%}
+ {{ restriction("Must be at least " ~ schema.kw_min_length.literal ~ " characters long", "min-length", schema.kw_min_length.html_id) }}
+ {%- endif -%}
+ {%- if schema.kw_max_length -%}
+ {{ restriction("Must be at most " ~ schema.kw_max_length.literal ~ " characters long", "max-length", schema.kw_max_length.html_id) }}
+ {%- endif -%}
+{%- endif -%}
+{%- if type_name in ["integer", "number"] -%}
+ {%- set restriction_text = (schema | get_numeric_restrictions_text("", "")) -%}
+ {%- if restriction_text -%}
+ {{ restriction(schema | get_numeric_restrictions_text("", ""), "numeric", schema.html_id ~ "_number") }}
+ {%- endif -%}
+{%- endif -%}
diff --git a/docs/config-file/templates/js/base.html b/docs/config-file/templates/js/base.html
new file mode 100644
index 0000000000..ec629067c5
--- /dev/null
+++ b/docs/config-file/templates/js/base.html
@@ -0,0 +1,42 @@
+{% from 'content.html' import content with context %}
+
+
+
+
+
+
+
+
+
+
+
+
+ {%- set title = schema.keywords.get("title") -%}
+ {% if title %}
+ {% set title = title.literal %}
+ {% endif %}
+ {%- if title -%}{{ title }}{%- else -%}Schema Docs{%- endif -%}
+
+
+ {%- if title -%}
+
{{ title }}
+ {%- endif -%}
+ {%- if config.expand_buttons -%}
+
+
+
+
+ {%- endif -%}
+
+ {%- set description = (schema | get_description) -%}
+ {%- include "section_description.html" -%}
+
+ {{ content(schema,False, True) }}
+
+ {% if config.with_footer -%}
+
+ {%- endif -%}
+
+
\ No newline at end of file
diff --git a/docs/config-file/templates/js/breadcrumbs_no_object.html b/docs/config-file/templates/js/breadcrumbs_no_object.html
new file mode 100644
index 0000000000..df5787f9e3
--- /dev/null
+++ b/docs/config-file/templates/js/breadcrumbs_no_object.html
@@ -0,0 +1,10 @@
+
+{% set my_string = [] %}
+{%- for node in schema.nodes_from_root -%}
+ {%- if not loop.first -%}
+
+ {%- endif -%}
+{%- endfor -%}
+{{ my_string|join('.') }}=
+
+
\ No newline at end of file
diff --git a/docs/config-file/templates/js/breadcrumbs_object.html b/docs/config-file/templates/js/breadcrumbs_object.html
new file mode 100644
index 0000000000..6e1562e095
--- /dev/null
+++ b/docs/config-file/templates/js/breadcrumbs_object.html
@@ -0,0 +1,15 @@
+
+ {%- for node in schema.nodes_from_root -%}
+ {%- if loop.first -%}
+ [
+ {%- else -%}
+ {{ node.name_for_breadcrumbs }}
+ {%- endif -%}
+ {%- if not loop.last and not loop.first %}
+ .
+ {% endif -%}
+ {%- if loop.last-%}
+ ]
+ {% endif -%}
+ {%- endfor -%}
+
\ No newline at end of file
diff --git a/docs/config-file/templates/js/content.html b/docs/config-file/templates/js/content.html
new file mode 100644
index 0000000000..f428997837
--- /dev/null
+++ b/docs/config-file/templates/js/content.html
@@ -0,0 +1,120 @@
+{% from "macro_restriction.html" import restriction with context %}
+
+{%- macro tabbed_section(operator, current_node) -%}
+ {% include "tabbed_section.html" %}
+{%- endmacro -%}
+
+{%- macro content(schema, skip_headers=False, skip_type=False) -%}
+ {% set keys = schema.keywords %}
+
+ {# Resolve type #}
+ {%- set type_name = schema.type_name -%}
+
+ {% if not skip_headers and type_name != "object" %}
+ {%- if config.show_breadcrumbs -%}
+ {%- if type_name == "object" -%}
+ {%- include "breadcrumbs_object.html" -%}
+ {%- else -%}
+ {%- include "breadcrumbs_no_object.html" -%}
+ {%- endif -%}
+
+ {%- endif -%}
+
+
+
+ {# Display default #}
+ {%- set default_value = schema.default_value -%}
+ {%- if default_value -%}
+ {{ " " }}Default: {{ default_value }}
+ {%- endif -%}
+
+ {# Display type #}
+ {%- if not schema is combining and not skip_type -%}
+ Type: {{ type_name }}
+ {%- endif -%}
+
+ {%- if schema.format -%}
+ Format: {{ schema.format }}
+ {%- endif -%}
+
+
+ {%- set description = (schema | get_description) -%}
+ {%- include "section_description.html" -%}
+ {%- endif -%}
+
+
+ {%- if schema.should_be_a_link(config) -%}
+ Same definition as {{ schema.links_to.link_name }}
+ {%- elif schema.refers_to -%}
+ {{ content(schema.refers_to_merged, True) }}
+ {%- else -%}
+
+
+
+ {# Combining: allOf, anyOf, oneOf, not #}
+ {%- if schema.kw_all_of -%}
+
{{ tabbed_section("allOf", schema.kw_all_of) }}
+ {%- endif -%}
+ {%- if schema.kw_any_of -%}
+
{{ tabbed_section("anyOf", schema.kw_any_of) }}
+ {%- endif -%}
+ {%- if schema.kw_one_of -%}
+
{{ tabbed_section("oneOf", schema.kw_one_of) }}
+ {%- endif -%}
+ {%- if schema.kw_not -%}
+ {% include "section_not.html" %}
+ {%- endif -%}
+
+ {# Enum and const #}
+ {%- if schema.kw_enum -%}
+
+
Must be one of:
+
+ {%- for enum_choice in schema.kw_enum.array_items -%}
+
{{ enum_choice.literal | python_to_json }}
+ {%- endfor -%}
+
+
+ {%- endif -%}
+ {%- if schema.kw_const -%}
+ Specific value: {{ schema.kw_const.raw | python_to_json }}
+ {%- endif -%}
+
+ {# Pattern (Regular Expression) #}
+ {%- if schema.kw_pattern -%}
+ Must match regular expression: {{ schema.kw_pattern.literal | escape }}
+ {%- endif -%}
+
+ {# Conditional subschema, or if-then-else section #}
+ {%- if schema.has_conditional -%}
+ {% include "section_conditional_subschema.html" %}
+ {%- endif -%}
+
+ {# Required properties that are not defined under "properties". They will only be listed #}
+ {% include "section_undocumented_required_properties.html" %}
+
+ {# Show the requested type(s) #}
+ {% include "badge_type.html" %}
+
+ {# Show array restrictions #}
+ {%- if type_name.startswith("array") -%}
+ {% include "section_array.html" %}
+ {%- endif -%}
+
+ {# Display examples #}
+ {%- set examples = schema.examples -%}
+ {%- if examples -%}
+ {% include "section_examples.html" %}
+ {%- endif -%}
+
+
+ {# Properties, pattern properties, additional properties #}
+ {%- for sub_property in schema.iterate_properties -%}
+ {%- if sub_property.type_name == "object" -%}
+ {% include "section_properties_object.html" %}
+ {%- else -%}
+ {% include "section_properties_2.html" %}
+ {%- endif -%}
+ {%- endfor -%}
+ {%- endif -%}
+{%- endmacro -%}
diff --git a/docs/config-file/templates/js/macro_restriction.html b/docs/config-file/templates/js/macro_restriction.html
new file mode 100644
index 0000000000..fdec2cbbe8
--- /dev/null
+++ b/docs/config-file/templates/js/macro_restriction.html
@@ -0,0 +1,3 @@
+{%- macro restriction(inner_text, css_class_name, html_id) -%}
+
+{%- endif -%}
+{%- if schema.tuple_validation_items -%}
+
Tuple Validation
+ {% for item in schema.tuple_validation_items %}
+
Item at {{ loop.index }} must be:
+
+
+ {{ content(item) }}
+
+
+ {% endfor %}
+{%- endif -%}
+{%- if schema.kw_contains and schema.kw_contains.literal != {} -%}
+
At least one of the items must be:
+
+
+ {{ content(schema.kw_contains) }}
+
+
+{%- endif -%}
\ No newline at end of file
diff --git a/docs/config-file/templates/js/section_conditional_subschema.html b/docs/config-file/templates/js/section_conditional_subschema.html
new file mode 100644
index 0000000000..e543669d96
--- /dev/null
+++ b/docs/config-file/templates/js/section_conditional_subschema.html
@@ -0,0 +1,58 @@
+
+
+
+
If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected.
+ Otherwise, the conditions in the "Else" tab should be respected.
+
+ {% if schema.kw_then %}
+ {% set tab_id = schema.kw_then.html_id %}
+
+ {{ content(schema.kw_then) }}
+
+ {%- endif -%}
+
+ {%- if schema.kw_else -%}
+ {% set tab_id = schema.kw_else.html_id %}
+
+ {{ content(schema.kw_else) }}
+
+ {%- endif -%}
+
\ No newline at end of file
diff --git a/docs/config-file/templates/js/section_description.html b/docs/config-file/templates/js/section_description.html
new file mode 100644
index 0000000000..e0cc3fab5f
--- /dev/null
+++ b/docs/config-file/templates/js/section_description.html
@@ -0,0 +1,16 @@
+
+{# Display description #}
+{%- if description -%}
+ {%- if not config.collapse_long_descriptions or description is description_short -%}
+ {{ description }}
+ {%- else -%}
+
+
+
+{%- for example in examples -%}
+ {%- set example_id = schema.html_id ~ "_ex" ~ loop.index -%}
+ {%- set example_is_long = config.collapse_long_examples and example is not description_short -%}
+ {%- if example_is_long -%}
+
+ {%- endif -%}
+
+ {%- if not examples_as_yaml -%}
+ {{ example | highlight_json_example }}
+ {%- else -%}
+ {{ example | highlight_yaml_example }}
+ {%- endif -%}
+
diff --git a/docs/config-file/templates/js/section_undocumented_required_properties.html b/docs/config-file/templates/js/section_undocumented_required_properties.html
new file mode 100644
index 0000000000..7e7ceaebee
--- /dev/null
+++ b/docs/config-file/templates/js/section_undocumented_required_properties.html
@@ -0,0 +1,11 @@
+{%- set undocumented_required_properties = schema | get_undocumented_required_properties -%}
+{%- if undocumented_required_properties-%}
+
+
The following properties are required:
+
+ {%- for required_property in undocumented_required_properties -%}
+
{{ required_property }}
+ {%- endfor -%}
+
+
+{%- endif -%}
\ No newline at end of file
diff --git a/docs/config-file/templates/js/tabbed_section.html b/docs/config-file/templates/js/tabbed_section.html
new file mode 100644
index 0000000000..9cecf4c142
--- /dev/null
+++ b/docs/config-file/templates/js/tabbed_section.html
@@ -0,0 +1,25 @@
+
+
+
+{%- set tab_label = "Option" -%}
+{%- if operator == "allOf" -%}
+ {%- set tab_label = "Requirement" -%}
+{%- endif -%}
+