Summary
This release introduces support for Pectra:
- on the CL, EIP-7002 (and necessary elements of EIP-7251) of Electra are supported for EL-triggered withdrawal requests
- on the EL, full compatibility with Prague is supported
For the Pectra hard fork on Berachain mainnet, this version should be used. The deadline to upgrade to this version is June 4th, 2025 @ 17:00:00 GMT+0000, when the beacon version will fork to Electra and the ELs are configured to fork to Prague.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Bepolia | Mainnet | General |
---|---|---|---|
Payload Builders | Recommended | Required | Recommended |
Non-Payload Builders | Recommended | Required | Recommended |
All Changes
- pre-deploys to the genesis files for nethermind (#2734)
- chore: refresh rpk (#2792)
- chore(forks): Enforce Fork Ordering (#2790)
- chore(pectra): Set mainnet timestamp (#2789)
- chore(blockchain): Added unit tests for optimistic block building (#2768)
- chore(deposits): Add Metric and Log for Excess Balance Withdrawal (#2783)
- revert(pectra): Unset mainnet fork time (#2785)
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.118 (#2775)
- chore(pectra): Set mainnet timestamp (#2753)
- fix(test): Fix Deposit Contract Predeploy Code (#2780)
- chore(deps): bump cosmossdk.io/collections from 1.2.0 to 1.2.1 (#2770)
- chore(deps): bump cosmossdk.io/log from 1.5.1 to 1.6.0 (#2771)
- node-api: partial pending withdrawals (#2740)
- chore(deps): bump github.com/spf13/cast from 1.7.1 to 1.8.0 (#2767)
- chore(deps): bump cosmossdk.io/log from 1.5.0 to 1.5.1 (#2762)
- chore(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1 (#2765)
- chore(deps): bump github.com/spf13/viper from 1.19.0 to 1.20.1 (#2763)
- chore(deps): bump cosmossdk.io/depinject from 1.1.0 to 1.2.0 (#2761)
- chore(deps): bump github.com/attestantio/go-eth2-client from 0.23.0 to 0.25.0 (#2757)
- chore(deps): bump cosmossdk.io/errors from 1.0.1 to 1.0.2 (#2756)
- chore(deps): bump cosmossdk.io/collections from 1.0.0-rc.1 to 1.2.0 (#2755)
- tests(pectra): More Simulation Tests for Pectra (#2713)
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117 (#2752)
- chore(deps): bump github.com/spf13/afero from 1.11.0 to 1.14.0 (#2751)
- chore(deps): bump github.com/rs/zerolog from 1.33.0 to 1.34.0 (#2745)
- chore(deps): bump github.com/protolambda/zrnt from 0.32.3 to 0.34.1 (#2744)
- chore(deps): bump github.com/cenkalti/backoff/v5 from 5.0.1 to 5.0.2 (#2743)
- Fix - Workflow Error on Starting Kurtosis (#2650)
- fix(tests): Override Electra timestamp in Simulation Tests. (#2750)
- chore(deps): bump github.com/go-playground/validator/v10 from 10.23.0 to 10.26.0 (#2742)
- chore(deps): bump golang.org/x/crypto from 0.35.0 to 0.38.0 (#2735)
- chore(deps): bump the go_modules group with 2 updates (#2739)
- chore(deps): bump cosmossdk.io/math from 1.4.0 to 1.5.3 (#2653)
- refactor: use slices.Contains to simplify code (#2720)
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0 in the go_modules group (#2597)
- chore(deps): bump cosmossdk.io/core from 1.0.0-alpha.6 to 1.0.0 (#2589)
- chore(deps): bump github.com/hashicorp/go-metrics from 0.5.3 to 0.5.4 (#2588)
- fix(bash): use env bash (#2738)
- chore(pectra): Update comments based on Bectra changes (#2731)
- fix(ci): Add Execution Request Predeploys for CI (#2733)
- fix(pectra): Spec Alignment for ExpectedWithdrawals (#2723)
- chore - Update E2E Readme with instructions to debug (#2717)
- chore(pectra): StateDB metrics (#2721)
- chore(pectra): Partial withdrawal failure metrics (#2718)
- chore(pectra): make gIndex calculations consistent with BeaconState (#2716)
- chore(pectra): Add Logger to StateDB so we can log in ExpectedWithdrawals (#2719)
- chore(state-processor): some more UTs (#2714)
- chore(pectra): Set the Bepolia Electra hardfork time (#2712)
- Chore(state transition): add unit tests around Withdrawal requests (#2708)
- chore(chain-spec): Remove env var
CHAIN_SPEC
(#2706) - refactor(pectra): clean up code of new state processing (#2709)
- [5/n] feat(pectra): Withdrawals Support (#2655)
- fix(state-processor): log deneb1 only once (#2702)
- [4/n] feat(genesis): Remove version.Genesis and allow for different fork version in Genesis (#2686)
- chore(bepolia): fix the node-id for bepolia seeds (#2698)
- [3/n] feat(pectra): Prepare beacon state for fork upgrade (#2678)
- chore: remove duplicate package imports (#2694)
- [2/n] chore(node-api): handle modified gIndexes with new Electra Beacon State (#2661)
- feat(CometBFT): reduce network traffic (#2687)
- [1/n] feat(pectra): Add Pending Partial Withdrawals to BeaconState (#2656)
- chore(devnet): Update
eth-genesis.json
formake start
(#2663) - chore(transition): Always process exactly one slot in
ProcessSlots
(#2657) - chore(node-api): Remove unused proof/ endpoints (#2660)
- feat(node-api): genesis api (#2601)
- test(pectra): Timestamp Forking Pectra Simulation Tests (4/n) (#2643)
- test(e2e): use optimistic build config for e2e test (#2652)
- feat(pectra): Timestamp based forking pectra e2e (#2644)
- chore(pectra): Add Pectra Fork Logging (3/n) (#2637)
- [2/2] chore(ssz): merkle libraries cleanup (#2647)
- [1/2] chore(pectra): cleanup misc ssz and version stuff (#2634)
- feat(fork): timestamp based forking (1/n) (#2630)
- feat(pectra): Add
engine_getPayloadV4
(#2645) - fix(pectra): Fix Bug in ForceSyncUponFinalize (#2635)
- fix(chainspec): Set EVMInfation*Deneb values in devnet spec (#2640)
- feat(pectra): Pectra Support (3/n) (#2623)
- chore(pectra): Update Simulation Test Chain Spec (2/n) (#2612)
- feat(pectra): Pectra Consensus Types (1/n) (#2618)
- chore(ssz): Make UnusedType use the ssz codec (#2624)
- chore(cli): newline after success message (#2631)
- Release - New PubKey (#2632)
- feat(node-api): Config spec API added (#2580)
- chore(networks/bepolia): add more peers and bootnodes (#2604)
- chore(configs): Warn on configs (#2620)
- chore(licenses): fix licences part 2 (#2626)
- fix(test): Fix flakiness in payload_header_test (#2625)
- chore(ssz types): Move UnusedType to Common and Define Interfaces Locally (#2617)
- chore(ssz types): replace NewVersioned attributes with generic constructor (#2616)
- chore(ssz types): replace New attributes with generic constructor (#2615)
- Fix some licensing copy. (#2619)
- chore(pectra): Standardise Fork Versions naming and modularise tests (0/n) (#2585)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.2.0-linux-amd64 | Signature | |
arm64 | beacond-v1.2.0-linux-arm64 | Signature | |
arm64 | beacond-v1.2.0-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>