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.
- 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 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.
WithdrawalVaultmay pullavailableWBERABalance()from yourSmartOperator, unwrap to BERA, and apply it in full, in part, or not at all. Uncovered remainder still exits through the consensus layer.
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 allocationCOMMISSION_MANAGER_ROLE: commissionPROTOCOL_FEE_MANAGER_ROLE: protocol feeINCENTIVE_COLLECTOR_MANAGER_ROLE: incentive collector
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, viaWithdrawalVault(full, partial, or none)
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
Useinstall.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.