> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Jovian: System Config

> SystemConfig changes in the Jovian upgrade, adding a minimum base fee configuration variable for the EIP-1559 fee market.

## Minimum Base Fee Configuration

Jovian adds a configuration value to `SystemConfig` to control the minimum base fee used by the EIP-1559 fee market
on Base. The value is a minimum base fee in wei.

| Name         | Type     | Default | Meaning                 |
| ------------ | -------- | ------- | ----------------------- |
| `minBaseFee` | `uint64` | `0`     | Minimum base fee in wei |

The configuration is updated via a new method on `SystemConfig`:

```solidity theme={null}
function setMinBaseFee(uint64 minBaseFee) external onlyOwner;
```

### `ConfigUpdate`

When the configuration is updated, a [`ConfigUpdate`](../../protocol/consensus/derivation#system-config-updates) event
MUST be emitted with the following parameters:

| `version`    | `updateType` | `data`                            | Usage                               |
| ------------ | ------------ | --------------------------------- | ----------------------------------- |
| `uint256(0)` | `uint8(6)`   | `abi.encode(uint64(_minBaseFee))` | Modifies the minimum base fee (wei) |

### Initialization

The following actions should happen during the initialization of the `SystemConfig`:

* `emit ConfigUpdate.BATCHER`
* `emit ConfigUpdate.FEE_SCALARS`
* `emit ConfigUpdate.GAS_LIMIT`
* `emit ConfigUpdate.UNSAFE_BLOCK_SIGNER`

Intentionally absent from this is `emit ConfigUpdate.EIP_1559_PARAMS` and `emit ConfigUpdate.MIN_BASE_FEE`.
As long as these values are unset, the default values will be used.
Requiring these parameters to be set during initialization would add a strict requirement
that the L2 hardforks before the L1 contracts are upgraded, and this is complicated to manage in a
world of many chains.

### Modifying Minimum Base Fee

Upon update, the contract emits the `ConfigUpdate` event above, enabling nodes
to derive the configuration from L1 logs.

Implementations MUST incorporate the configured value into the block header `extraData` as specified in
`./exec-engine.md`. Until the first such event is emitted, a default value of `0` should be used.

### Interface

#### Minimum Base Fee Parameters

##### `minBaseFee`

This function returns the currently configured minimum base fee in wei.

```solidity theme={null}
function minBaseFee() external view returns (uint64);
```

## DA Footprint Configuration

Jovian adds a `uint16` configuration value to `SystemConfig` to control the [`daFootprintGasScalar`](./derivation).

The configuration is updated via a new method on `SystemConfig`:

```solidity theme={null}
function setDAFootprintGasScalar(uint16 daFootprintGasScalar) external onlyOwner;
```

### `ConfigUpdate`

When the configuration is updated, a [`ConfigUpdate`](../../protocol/consensus/derivation#system-config-updates) event
MUST be emitted with the following parameters:

| `version`    | `updateType` | `data`                                      | Usage                                |
| ------------ | ------------ | ------------------------------------------- | ------------------------------------ |
| `uint256(0)` | `uint8(7)`   | `abi.encode(uint16(_daFootprintGasScalar))` | Modifies the DA footprint gas scalar |

### Modifying DA Footprint Gas Scalar

Upon update, the contract emits the `ConfigUpdate` event above, enabling nodes
to derive the configuration from L1 logs.

### Interface

#### DA Footprint Gas Scalar Parameters

##### `daFootprintGasScalar`

This function returns the currently configured DA footprint gas scalar.

```solidity theme={null}
function daFootprintGasScalar() external view returns (uint16);
```
