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

# Jovian Hardfork

> Node operator changes and activation timings for the Jovian hardfork

This page outlines changes related to the Jovian Upgrade for node operators.

> [!NOTE]
>
> Jovian has been activated.
>
> * Celo Sepolia testnet activation: Tue, Mar 17, 2026, 12:03:57 UTC
>   * Activation timestamp: `1773749037`
> * **Mainnet** activation: Tue, Mar 31, 2026, 12:06:28 UTC
>   * Activation timestamp: `1774958788`

## What is the Jovian Hardfork?

The Jovian Hardfork adopts features from [Optimism's Jovian hardfork](https://specs.optimism.io/protocol/superchain-upgrades.html) along with Celo-specific improvements focused on gas accounting and base fee alignment.

Key changes include:

* **Transfer Precompile Address Warming**: The transfer precompile now warms `from` and `to` addresses during execution, aligning with standard EVM behavior and ensuring correct gas accounting for subsequent operations on the same address.
* **Minimum Base Fee Transition**: Celo moves from its own gas price floor mechanism to Optimism's configurable Minimum Base Fee standard, maintaining a cost floor while aligning with OP Stack conventions.
  For the full technical specification, see the [Jovian upgrade spec](/operate/specification/upgrades/jovian).
* **L1 Fusaka Upgrade**: Celo now includes improvements to handle the L1 Fusaka upgrade, leading to better compatibility with the Optimism stack. For more details see [OP Fusaka upgrade notice](https://docs.optimism.io/notices/archive/fusaka-notice).
* **EigenDA upgrade**: The EigenDA proxy is upgraded to a recent version which improves the trustless integration and allows switching to the latest EigenDA protocol version.

## For Bridges and Users

> [!NOTE]
>
> All withdrawals that were not finalized before the contract upgrade right before the Jovian hardfork had to be reproven (see step 4 below).

Celo's Jovian hardfork includes [Optimism Upgrade 16](https://docs.optimism.io/notices/archive/upgrade-16). Users should be aware of the following impacts:

### Withdrawal flow changes

1. There was a one-time invalidation of all pending withdrawal proofs created on L1.
2. Pending withdrawals had to be completed before the upgrade was executed.
3. New withdrawal proofs that would not become executable in time had to be avoided.
4. If a withdrawal was invalidated, submit a second withdrawal proof transaction on L1.

This invalidation does not place any ETH or ERC-20 tokens at risk.

## For Node Operators

Node operators needed to upgrade to the respective Jovian releases before the activation dates.

### Releases for Jovian

The release contained the activation timestamps for Celo Mainnet and Celo Sepolia testnet. For current versions see [Network config](/operate/operators/network-config).

* `op-geth` at [v2.2.2](https://github.com/celo-org/op-geth/releases/tag/celo-v2.2.2)

* `op-node` at [v2.2.1](https://github.com/celo-org/optimism/releases/tag/celo-v2.2.1)

* `eigenda-proxy` at [v2.6.0](https://github.com/Layr-Labs/eigenda/releases/tag/v2.6.0)

* For an easy way to run a node and an example of valid flags see [celo-l2-node-docker-compose v1.3.3](https://github.com/celo-org/celo-l2-node-docker-compose/tree/v1.3.3)

#### Updating the EigenDA proxy

The Jovian hardfork also increases the minimum EigenDA proxy version to `v2.6.0`.

This update requires some changes to the configuration:

* Set the following flags
  * `--eigenda.v2.network` to either `mainnet` or `sepolia_testnet`
  * `--eigenda.v2.cert-verifier-router-or-immutable-verifier-addr` to the `CertRouter` contract on the corresponding L1
    * Sepolia: [`0xf4f934A0b5c09d302d9C6f60040754fEebdd6073`](https://sepolia.etherscan.io/address/0xf4f934A0b5c09d302d9C6f60040754fEebdd6073)
    * Mainnet: [`0x2ea418AE1852bfC79e18B37E55F278F9c598AA08`](https://etherscan.io/address/0x2ea418AE1852bfC79e18B37E55F278F9c598AA08)
  * `--apis.enabled` to `"op-generic,op-keccak,standard,metrics"`
* Remove the following flags if they are set
  * `--eigenda.signer-private-key-hex`
  * `--eigenda.v2.disperser-rpc`
  * `--eigenda.v2.cert-verifier-addr`
  * `--eigenda.v2.eigenda-directory`
  * `--eigenda.v2.signer-payment-key-hex`
  * `--eigenda.v2.service-manager-addr`
  * `--eigenda.v2.bls-operator-state-retriever-addr`
  * `--eigenda.g1-path`
  * `--eigenda.g2-path`
  * `--eigenda.g2-path-trailing`

> [!TIP]
>
> **Docker Compose**
>
> The configuration for each service can be found in our [Docker Compose Setup](https://github.com/celo-org/celo-l2-node-docker-compose), where every network has a corresponding `<network>.env` file.

### Re-download genesis and rollup.json files

The `genesis.json` and `rollup.json` files have been updated for the Jovian hardfork. Node operators not using the [Docker Compose setup](https://github.com/celo-org/celo-l2-node-docker-compose) had to re-download these files before upgrading.

**Mainnet:**

* [`genesis.json`](https://storage.googleapis.com/cel2-rollup-files/celo/genesis.json)
* [`rollup.json`](https://storage.googleapis.com/cel2-rollup-files/celo/rollup.json)

**Celo Sepolia:**

* [`genesis.json`](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/genesis.json)
* [`rollup.json`](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/rollup.json)

### Verify Your Configuration

Make the following checks to verify that your node is properly configured.

* op-node and op-geth logged their configurations at startup
* Check that the Jovian time is set correctly in the `op-node` startup logs
* Check that the Jovian time is set correctly in the `op-geth` startup logs

### Notes

#### Event logs index rebuild on upgrade

Nodes performed a one-time log index rebuild on first start, visible as `Log
index head rendering in progress` in logs. This can take several hours as the
full chain history is processed. Subsequent restarts did not re-index.

#### Event logs new flag `--history.logs`

Controls how long (in blocks) to maintain the event log indexes. Prior to this
upgrade the event log index was maintained for all event logs since genesis, now
the flag has a default setting of 28200000 blocks which is \~326 days. To index
all event logs since genesis set the flag to zero.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.