Skip to main content
A staking pool lets you offer liquid staking to your community. Stakers deposit BERA and receive stBERA shares that grow as rewards compound. You earn commission on those rewards.

How a pool is put together

StakingPoolContractsFactory deploys the contracts for one validator. Each pool includes:
  • StakingPool: deposits, share accounting, and the stBERA token. Stakers call this contract.
  • SmartOperator: validator operations and Proof of Liquidity.
  • StakingRewardsVault: consensus-layer rewards, compounded back into the pool.
Shared across pools:
  • WithdrawalVault: withdrawal requests for every pool
  • AccountingOracle: consensus-layer balances that feed totalAssets
StakingPool inherits stBERA share mint, burn, and asset conversion.

What changed after BGT deprecation

The May 2026 Proof of Liquidity upgrade changed how pools earn. The contract surface stays largely the same.
  • **Reward emissions are paid in WBERA.ValidatoremissionsaccrueasWBERA.** Validator emissions accrue as WBERA on SmartOperator. See Automatic WBERA flows.
  • Per-block emission is a flat rate. It no longer scales with BGT delegation. Pools compete on reward allocation, attracted incentives, and commission.
  • BGT is deprecated. Unboost and burn BGT held on your SmartOperator. BGT-era entry points stay callable until chargeable BGT is gone. See Deprecated BGT entry points.
  • Withdrawals can use operator WBERA. WithdrawalVault may pull availableWBERABalance() from your SmartOperator, unwrap to BERA, and apply it in full, in part, or not at all. Uncovered remainder still exits through the consensus layer.
For the rest of the upgrade, see What’s New.

Who can do what

DEFAULT_ADMIN_ROLE governs upgrades and emergency actions. VALIDATOR_ADMIN_ROLE is scoped to your pool. Other roles:
  • REWARDS_ALLOCATION_MANAGER_ROLE: reward allocation
  • COMMISSION_MANAGER_ROLE: commission
  • PROTOCOL_FEE_MANAGER_ROLE: protocol fee
  • INCENTIVE_COLLECTOR_MANAGER_ROLE: incentive collector
Contracts can pause. If deposits fall below the minimum effective balance, the pool can trigger a full exit.

What stakers see

Stakers deposit BERA and receive stBERA immediately. Rewards compound into share price. They can withdraw without a validator minimum. Withdrawal liquidity can come from:
  • the consensus layer
  • buffered funds on the pool before activation
  • WBERA on your SmartOperator, via WithdrawalVault (full, partial, or none)
Finalizing a request waits until requestBlock + 129,600 blocks (about three days at ~2s). See the Operator guide.
stBERA is not an LST. It cannot be registered with IncentivesCollector as an LSTStakerVault asset, and it cannot be deposited into the $sWBERA Staking Vault. Pool yield reaches holders through this pool’s SmartOperator and IncentiveCollector, not through the PoL Incentive Auction.

What you operate

You deploy through the factory, which registers the validator. Commission is up to 20% of staker rewards and collects automatically. You can direct Proof of Liquidity incentives to specific applications.

Tools

Use install.sh in install-helpers/ to install a pool. A React example frontend covers post-install staker operations. The Python SmartOperator Manager CLI manages operator contracts on the validator. Start with Install a staking pool. Day-two work is in the Operator guide. Addresses and ABIs are in Look up staking pool contract addresses. If you don’t have Validator Relations contact, ask in the Discord #node-support channel.