Skip to content

August 2025 Berachain Upgrade 🔱

Our next upgrade brings to Berachain four approved Improvement Proposals.

  1. BRIP-0001 - Execution Layer Forked Clients
  2. BRIP-0002 - Gas Fee Modifications
  3. BRIP-0003 - Stable Block Time
  4. BRIP-0004 - Enshrined PoL Reward Distribution

Bera-Reth and Bera-Geth are new forks of ParadymXYZ's reth and Ethereum Foundation's go-ethereum, under the upstream software licenses.

WARNING

All users, whether hosting an RPC or running a validator, must upgrade their Execution Client to either Bera-Reth or Bera-Geth, and upgrade to Beacon Kit 1.3.1, to continue following the chain.

August September 2025 Upgrade Timeline

DateMilestone
July 30, 2025Beacon-Kit, Bera-Geth/Reth release candidates out for installation to Bepolia
August 6, 2025Bepolia upgrade activated
August 13, 2025Final versions of Beacon-Kit, Bera-Geth/Reth released for installation to Mainnet and Bepolia.
August 18, 2025Updated releases + fork activation date
September 3, 2025 @ 1600 GMT / 1200 EDTMainnet hardfork activates

Upgrade Details

Berachain will release stand-alone executables and Docker images for Linux ARM and AMD64 architectures for Beacon Kit, Bera-Reth, and Bera-Geth. All clients are easily compiled for other systems and architectures with a few minutes' time; review their respective READMEs for details.

Executable names are changed: gethbera-geth and rethbera-reth, in our release binaries and Docker images.

Operators currently running Geth or Reth can switch to our forked versions while retaining their current chain data files. Note that Bera-Geth will update the data store by by renaming geth directory to bera-geth on the first run.

New genesis files are required for Bera-Reth/Geth.

No configuration changes are required for CL/EL config files.

Upgrade instructions

Test your modifications on non-production infrastructure to verify your new startup process that refers to the new executable names bera-reth and bera-geth.

TIP

If you duplicate your installation to test, don't duplicate these identity files to avoid interfering with your production node's peering:

  • Bera-Reth: discovery_secret file
  • Bera-Geth: nodekey file
  • Beacon-Kit: priv_validator_key.json file

WARNING

If you compile your own build, do so against the recommended release branches.

  1. Stop all clients.

  2. Install Beacon-Kit 1.3.1 and the release version of either Bera-Geth or Bera-Reth, linked below, into place.

  3. Install the new Reth/Geth genesis files linked below into place, and verify the hash with md5sum <file>. Then:

    • Bera-Reth: overwrite $RETH_DATA/genesis.json.

    • Bera-Geth: run bera-geth init against your Geth data directory with the supplied genesis file. We recommend making this a permanent part of every bera-geth startup, especially in kubernetes. Our recommended startup process now includes this.

      bera-geth init --datadir /path/to/geth/datadir /path/to/eth-genesis.json

  4. Start all clients.

ChainGithub release pageRelease date
Mainnet & BepoliaBera-Geth v1.011602.3August 19
Mainnet & BepoliaBera-Reth v1.0.1August 18
Mainnet & BepoliaBeacon-Kit v1.3.1August 18
Bera-Reth/Geth Genesis FileUpdatedDownload link & md5 hash
BepoliaJuly 29b659cbef86a6eded371d8e443abf2c0b
MainnetAugust 1851ec047b71b06f7fbca9689037ec1d60

Confirm upgrade

Beacon-Kit should log the fork timestamp:

txt
 	+ ⭐️ Star BeaconKit on GitHub @ https://github.com/berachain/beacon-kit    +
 	+ 🧩 Your node is running version: v1.3.1                                  +
 	+ 💾 Your system: linux/amd64                                              +
 	+ 🍴 Deneb1 Fork Time: 1738415507                                          +
 	+ 🍴 Electra Fork Time: 1749056400                                         +
 	+ 🍴 Electra1 Fork Time: 1756915200                                        +
 	+ 🦺 Please report issues @ https://github.com/berachain/beacon-kit/issues +
 	+==========================================================================+

Bera-Geth should log the fork timestamp:

txt
	+ 🍴 Electra1 Fork Time: 1756915200                                        +
...
INFO  - Prague1:                     prague1(time: 1756915200, baseFeeChangeDenominator: 48, minimumBaseFeeWei: 1000000000, polDistributorAddress: 0xD2f19a79b026Fb636A7c300bF5947df11394076

Bera-Reth should log fork timestamp:

txt
- Prague1                          @1756915200
...
Berachain Prague1 configuration: {time=1756915200, base_fee_denominator=48, min_base_fee=1 gwei, pol_distributor=0xD2f19a79b026Fb636A7c300bF5947df113940761}

FAQ

Where's my Geth data directory?

The geth datadir should contain the following directories:

bash
tree datadir;

# [Expected Output]:
# datadir
# ├── keystore
# └── geth
#     ├── blobpool
#     └── chaindata