Skip to main content

Documentation Index

Fetch the complete documentation index at: https://berachain-422fce37-fix-pol-diagrams.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The following steps guide you through the process of increasing a Validator’s $BERA stake to increase their stake weight and improve the probability of proposing blocks. This guide assumes that a Validator is already in the Active Set. If you would like to test this out locally, consult the guide to a local Kurtosis-based devnet, which includes instructions on testing deposits.

Active set and $BERA stake

Currently, the Active Set consists of 69 Validators, which is the number of Validators that can propose blocks. The Active Set is determined by the amount of $BERA staked, where the top stakers are included in the Active Set. To be included in the Active Set, a Validator must stake at least 10,000 $BERA or 1 $BERA more than the lowest staker in the Active Set (whichever is greater). If a Validator is removed from the Active Set, all $BERA staked to that Validator will be returned to the Validator’s Withdrawal Credentials Address.

Staking considerations

There are a few points to consider with staking:
  • Stake returned to single address — All $BERA staked to a Validator is returned to the Validator’s Withdrawal Credentials Address. If there are multiple stakers, an agreement must be put in place with the Validator to ensure that the $BERA is returned to the correct addresses.
  • Liquid staking protocols — Managing multiple stakers with a single Validator can be difficult. As an alternative, Liquid Staking Protocols are an option.
  • Effective-balance updates lag actual balance — Voting power tracks effective balance, which only moves when actual balance crosses a hysteresis threshold around the next 10,000 BERA increment. A top-up needs to clear the upward buffer of about 1,000 BERA above the next increment (~110% of the increment) before voting power steps up. See Validator lifecycle for the full mechanics.

Worked example

Take a validator currently sitting at an effective balance of 250,000 BERA who wants to step up to 260,000 BERA. The next increment boundary is 260,000 BERA; the upward buffer is +1,000 BERA above that boundary. Actual balance must reach 261,000 BERA before effective balance steps to 260,000 BERA. A top-up of 11,000 BERA from a 250,000 BERA actual balance is enough; 10,000 BERA is not.

Requirements

Before you begin, ensure you have the following:
  • A Validator that is already in the Active Set
  • A Validator’s pubkey — PubKeys can be found at Berachain Hub Validators
  • A minimum of 10,000 $BERA or 1 $BERA more than the lowest staker in the Active Set (whichever is greater)
  • Foundry

Steps to increase a validator’s $BERA stake

VALIDATOR_PUB_KEY=<VALIDATOR_PUB_KEY_98CHARS_WITH_0x>;
YOUR_ETH_WALLET_PRIVATE_KEY=<YOUR_ETH_WALLET_PRIVATE_KEY>;
YOUR_ETH_RPC_URL=<YOUR_ETH_RPC_URL>;
YOUR_STAKED_AMOUNT=<NUMBER>ether;

# The 0x0.. are NOT typos
cast send "0x4242424242424242424242424242424242424242" \
'deposit(bytes,bytes,bytes,address)' \
"$VALIDATOR_PUB_KEY" \
"0x0000000000000000000000000000000000000000000000000000000000000000" \
"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" \
"0x0000000000000000000000000000000000000000" \
--private-key "$YOUR_ETH_WALLET_PRIVATE_KEY" \
--value $YOUR_STAKED_AMOUNT \
-r $YOUR_ETH_RPC_URL;