BERA Staking Guide 🐻
The PoL BERA Yield Module lets you stake $BERA
directly and earn yield from Proof-of-Liquidity incentives. It's a simple way to earn yield on your BERA without diving into complex DeFi protocols.
Overview
The BERA Yield Module uses the Staking Vault, an ERC4626-compliant vault that:
- Takes both native
$BERA
and wrapped$WBERA
deposits - Earns yield from redirected PoL incentives (33% of protocol incentives)
- Has a 7-day unbonding period for withdrawals
- Automatically compounds your rewards for better yields
How to Stake BERA
Option 1: Native BERA Staking (Recommended)
- Connect your wallet to the Berachain network
- Navigate to the Staking Vault interface
- Select "Deposit Native" and enter the amount of BERA you want to stake
- Confirm the transaction - your BERA will be automatically wrapped to WBERA and deposited
- Receive sWBERA tokens representing your staked position
Option 2: WBERA Staking
- Wrap your BERA to WBERA first using the WBERA contract
- Approve WBERA for the Staking Vault
- Deposit WBERA into the vault
- Receive sWBERA tokens representing your staked position
Understanding Your Position
sWBERA Tokens
When you stake BERA, you receive sWBERA (Staked WBERA) tokens:
- Name: "POL Staked WBERA"
- Symbol: "sWBERA"
- Decimals: 18
- Value: Each sWBERA represents your share of the vault's total assets
Yield Calculation
Your yield depends on:
- Your share of the total vault assets
- The amount of WBERA distributed to the vault from incentive fees
- Auto-compounding of rewards over time
The more sWBERA you have compared to the total supply, the bigger your share of the distributed rewards.
Withdrawal Process
7-Day Unbonding Period
To withdraw your staked BERA:
- Initiate withdrawal by calling
withdraw()
orredeem()
on the vault - Wait 7 days for the unbonding period to complete
- Complete withdrawal by calling
completeWithdrawal()
- Choose format: Receive either native BERA or WBERA
Important Notes
- Only one withdrawal request can be active per address at a time
- No rewards earned during the unbonding period
- Cannot cancel a withdrawal request once initiated
- Withdrawal requests expire after 7 days if not completed
Security Features
Inflation Attack Protection
The vault includes protection against inflation attacks through:
- Initial deposit mechanism to establish proper exchange rates
- Reserved assets tracking for pending withdrawals
- Careful accounting of total assets vs. available assets
Emergency Controls
The vault can be paused by authorized roles in emergency situations:
- PAUSER_ROLE: Can pause the vault
- MANAGER_ROLE: Can unpause the vault
- DEFAULT_ADMIN_ROLE: Can upgrade the vault implementation
Yield Sources
PoL Incentive Redirection
Your yield comes from the 33% incentive tax collected from PoL protocols:
- Protocols pay incentives to validators for directing BGT emissions
- 33% fee collected during incentive distribution and sent to the Incentive Fee Collector
- Fees auctioned for WBERA
- WBERA distributed to Staking Vault stakers
Auto-Compounding
Your rewards automatically compound:
- No manual claiming needed
- Continuous yield growth as more incentives come in
- Your share value keeps growing over time
Integration with LSTs
Future versions will support Liquid Staking Tokens (LSTs):
- Dual yield: Earn from both validator staking and PoL incentives
- Enhanced security: Help secure the network while earning PoL yield
- Flexible liquidity: Use LSTs in other DeFi protocols
Best Practices
Staking Strategy
- Long-term holding: The 7-day unbonding period works best for long-term staking
- Regular deposits: Consider dollar-cost averaging your BERA deposits
- Monitor yield: Keep track of how your position grows over time
Risk Management
- Plan withdrawals: The unbonding period means you need to plan ahead
- Diversify: Don't put all your BERA in one place
- Stay informed: Keep up with governance changes that might affect parameters
Technical Details
Contract Addresses
- Staking Vault:
0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a
- WBERA Token:
0x6969696969696969696969696969696969696969
- Incentive Fee Collector:
0x1984Baf659607Cc5f206c55BB3B00eb3E180190B
Key Functions
// Deposit native BERA
function depositNative(uint256 assets, address receiver) external payable returns (uint256 shares)
// Deposit WBERA
function deposit(uint256 assets, address receiver) external returns (uint256 shares)
// Initiate withdrawal
function withdraw(uint256 assets, address receiver, address owner) external returns (uint256 shares)
// Complete withdrawal
function completeWithdrawal(bool isNative) external