> ## Documentation Index
> Fetch the complete documentation index at: https://berachain-422fce37-docs-staking-pool-install-cli.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# What staking pools do

> Validator-operated liquid staking: stBERA, contract layout, staker flow, and Proof of Liquidity.

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.** Validator emissions accrue as $WBERA on `SmartOperator`. See [Automatic WBERA flows](/nodes/staking-pools/operators#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](/nodes/staking-pools/operators#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](/general/proof-of-liquidity/changelog).

## 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](/nodes/staking-pools/operators#withdrawal-system).

<Note>
  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.
</Note>

## 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`](https://github.com/berachain/guides/tree/main/apps/staking-pools/install-helpers/install.sh) and [`delegator-delegate.sh`](https://github.com/berachain/guides/tree/main/apps/staking-pools/install-helpers/delegator-delegate.sh) in `install-helpers/` to install a pool and form a delegated handler. A React [example frontend](/nodes/staking-pools/operators#building-your-front-end) covers post-install staker operations. The Python SmartOperator Manager CLI manages operator contracts on the validator.

Start with [Install a staking pool](/nodes/staking-pools/installation). Day-two work is in the [Operator guide](/nodes/staking-pools/operators). Addresses and ABIs are in [Look up staking pool contract addresses](/nodes/staking-pools/contracts).

If you don't have Validator Relations contact, ask in the [Discord](https://discord.gg/berachain) **#node-support** channel.
