Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion apps/bend/content/developers/deployed-contracts.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ head:

This is a list of addresses where contracts can be read from or written to.

> A full list of Contract ABIs can be found at https://github.com/berachain/doc-abis
> **Contract ABIs:**
>
> - **Mainnet ABIs:** [berachain/abis/tree/main/mainnet/contracts](https://github.com/berachain/abis/tree/main/mainnet/contracts)
> - **Testnet ABIs:** [berachain/abis/tree/main/bepolia/contracts](https://github.com/berachain/abis/tree/main/bepolia/contracts)
> - **Documentation ABIs:** [berachain/doc-abis](https://github.com/berachain/doc-abis)

:::info
Deployed contracts have received several audits from various parties. All audit reports are publicly available on [Github](https://github.com/berachain/security-audits).
Expand Down
6 changes: 5 additions & 1 deletion apps/bex/content/developers/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ For more information, see the [Balancer disclosure](https://forum.balancer.fi/t/

The following is a list of contract address in order to interact with Berachain BEX.

> A full list of Contract ABIs can be found at https://github.com/berachain/doc-abis
> **Contract ABIs:**
>
> - **Mainnet ABIs:** [berachain/abis/tree/main/mainnet/contracts](https://github.com/berachain/abis/tree/main/mainnet/contracts)
> - **Testnet ABIs:** [berachain/abis/tree/main/bepolia/contracts](https://github.com/berachain/abis/tree/main/bepolia/contracts)
> - **Documentation ABIs:** [berachain/doc-abis](https://github.com/berachain/doc-abis)

## Mainnet Contracts

Expand Down
48 changes: 48 additions & 0 deletions apps/core/.vitepress/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,10 @@ const SIDEBAR = {
{
text: "WBERAStakerVault",
link: "/developers/contracts/wbera-staker-vault"
},
{
text: "Staking Pools >>",
link: "/nodes/staking-pools/contracts"
}
]
},
Expand Down Expand Up @@ -373,6 +377,50 @@ const SIDEBAR = {
}
]
},
{
text: "Staking Pools",
items: [
{ text: "Overview", link: "/nodes/staking-pools/" },
{ text: "Installation Guide", link: "/nodes/staking-pools/installation" },
{ text: "Operator Guide", link: "/nodes/staking-pools/operators" },
{ text: "Delegation Guide", link: "/nodes/staking-pools/delegators" },
{ text: "Smart Contract Reference", link: "/nodes/staking-pools/contracts" },
{
text: "Contracts",
collapsed: true,
items: [
{
text: "StakingPoolContractsFactory",
link: "/nodes/staking-pools/contracts/StakingPoolContractsFactory.md"
},
{
text: "StakingPool",
link: "/nodes/staking-pools/contracts/StakingPool.md"
},
{
text: "SmartOperator",
link: "/nodes/staking-pools/contracts/SmartOperator.md"
},
{
text: "IncentiveCollector",
link: "/nodes/staking-pools/contracts/IncentiveCollector.md"
},
{
text: "StakingRewardsVault",
link: "/nodes/staking-pools/contracts/StakingRewardsVault.md"
},
{
text: "WithdrawalVault",
link: "/nodes/staking-pools/contracts/WithdrawalVault.md"
},
{
text: "DelegationHandler",
link: "/nodes/staking-pools/contracts/DelegationHandler.md"
}
]
}
]
},
{
text: "Help",
items: [{ text: "Validator Support FAQ", link: "/nodes/faq" }]
Expand Down
12 changes: 9 additions & 3 deletions apps/core/content/developers/deployed-contracts.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ head:

This is a list of addresses where contracts can be read from or written to.

> A full list of Contract ABIs can be found at https://github.com/berachain/doc-abis
> **Contract ABIs:**
>
> - **Mainnet ABIs:** [berachain/abis/tree/main/mainnet/contracts](https://github.com/berachain/abis/tree/main/mainnet/contracts)
> - **Testnet ABIs:** [berachain/abis/tree/main/bepolia/contracts](https://github.com/berachain/abis/tree/main/bepolia/contracts)
> - **Documentation ABIs:** [berachain/doc-abis](https://github.com/berachain/doc-abis)

:::info
Deployed contracts have received several audits from various parties.
Expand All @@ -31,13 +35,15 @@ All audit reports are publicly available on [Github](https://github.com/berachai
<script>
const mainnet_render_groups = {
"Proof of Liquidity": config.contracts.pol,
"Staking Pools": config.contracts.stakingPools,
"Tokens": config.contracts.tokens,
"Safe": config.contracts.safe,
"Other": config.contracts.other
}

const testnet_render_groups = {
"Proof of Liquidity": config.contracts.pol,
"Staking Pools": config.contracts.stakingPools,
"Tokens": config.contracts.tokens,
"Safe": config.contracts.safe,
"Other": config.contracts.other
Expand All @@ -51,7 +57,7 @@ const testnet_render_groups = {
<thead><tr><th>Name</th><th>Mainnet</th><th>ABI</th></tr></thead>
<tbody>
<template v-for="(sc, key) in contracts">
<template v-if="sc['address']['berachainMainnet']">
<template v-if="sc['address']?.['berachainMainnet']">
<tr>
<td><template v-if="sc['docsUrl']"><a :href="sc.docsUrl">{{ sc.name }}</a></template><template v-else><b>{{ sc.name }}</b></template></td>
<td>
Expand All @@ -74,7 +80,7 @@ const testnet_render_groups = {
<thead><tr><th>Name</th><th>Bepolia</th><th>ABI</th></tr></thead>
<tbody>
<template v-for="(sc, key) in contracts">
<template v-if="sc['address']['berachainBepolia']">
<template v-if="sc['address']?.['berachainBepolia']">
<tr>
<td><template v-if="sc['docsUrl']"><a :href="sc.docsUrl">{{ sc.name }}</a></template><template v-else><b>{{ sc.name }}</b></template></td>
<td>
Expand Down
19 changes: 10 additions & 9 deletions apps/core/content/learn/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ Berachain Improvement Proposals (BRIPs) are welcome from anyone, by [contributin

Below are important changes shipped to Berachain.

## January 2026

**Staking pools documentation** – Added documentation for staking pools, enabling validators to offer liquid staking services to their communities. Includes [installation guide](/nodes/staking-pools/installation), [operator guide](/nodes/staking-pools/operators), [delegation guide](/nodes/staking-pools/delegators), and [smart contract reference](/nodes/staking-pools/contracts). Staking pools allow validators to build and monetize communities of stakers who deposit BERA and receive liquid shares (stBERA) that automatically grow in value.

## December 2025

**Reward allocation documentation updates** – Updated [BeraChef reward allocation documentation](/learn/pol/blockrewards#berachef-reward-allocation-management) to clarify the automated cutting board mechanism.
Expand All @@ -16,22 +20,19 @@ Below are important changes shipped to Berachain.

## October 2025

**[Hub API documentation](/developers/hub-api)** – Added reference documentation for the Hub GraphQL API that powers hub.berachain.com. Includes 50+ queries for pools, tokens, validators, reward vaults, and smart order routing with tested examples and schema reference.
**[Bend Protocol documentation](http://docs.bend.berachain.com/)** – Added documentation for [Bend](https://bend.berachain.com/), a new lending protocol on Berachain. Documentation includes developer guides, contract references, and user guides covering deposit/withdraw, borrow/repay, and protocol concepts including IRMs and oracles.

**[Bend documentation](https://docs.bend.berachain.com)** – Launched dedicated documentation site for Bend, Berachain's borrowing and lending protocol. Includes market mechanics, developer guides, and contract references.
**Smart contract verification guides** – Added guides for verifying smart contracts on Berachain using multiple methods including [Berascan verification](/developers/guides/verify-smart-contracts) and [contract verification using Berascan](/developers/guides/verify-contract-using-berascan). Includes step-by-step instructions with screenshots and code examples.

**[Smart contract verification guide](/developers/guides/verify-smart-contracts)** – Added guide for verifying smart contracts on Berascan using Foundry, Hardhat, and manual verification methods with constructor parameter encoding examples.
**Bridge to Berachain quickstart** – Added new [quickstart guide](/developers/quickstart/bridge-to-berachain) for bridging assets to Berachain, including LayerZero OFT integration patterns and token team deployment workflows. Updated with [Berachain Bridge dApp](/learn/dapps/bridge) documentation.

**[Safe contracts](/developers/deployed-contracts)** – Added Safe v1.4.1 contract addresses for multi-signature wallet deployments including SafeProxyFactory, MultiSend, and related contracts.

**[PoL integration quickstart](/developers/quickstart/pol-integration)** – Updated the [Incentivize Anything playground](https://playground.bepolia.berachain.com) examples.
**Safe integration guide** – Added [Safe integration documentation](/learn/guides/safe-add-incentives-for-reward-vault) for integrating with Safe (formerly Gnosis Safe) on Berachain, including contract addresses and deployment information for secure multi-sig wallet functionality.

**[BEX documentation updates](http://docs.bex.berachain.com/)** – Updated swap guides with enhanced price impact information and standardized terminology across all BEX documentation.

**[Bridge to Berachain quickstart guide](/developers/quickstart/bridge-to-berachain)** – Vor bridging assets to Berachain, including LayerZero OFT integration patterns and token team deployment workflows. Updated with [Berachain Bridge dApp](/learn/dapps/berachain-bridge) documentation.

**[sWBERA token documentation](/learn/pol/tokens/swbera)** – Including 7-day unstaking period details, integration patterns, and contract reference information.
**sWBERA token documentation** – Added [sWBERA token documentation](/learn/pol/tokens/swbera) including 7-day unstaking period details, integration patterns, and contract reference information.

**PoL integration updates** – Updated [PoL integration quickstart](/developers/quickstart/pol-integration) with the [Incentivize Anything playground](https://playground.bepolia.berachain.com) examples.

## September 2025

Expand Down
16 changes: 8 additions & 8 deletions apps/core/content/learn/pol/tokens/swbera.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,29 @@ head:

# $sWBERA

> <small><a target="_blank" :href="config.websites.berascan.url + 'address/' + config.contracts.pol.wberaStakerVault['mainnet-address']">{{config.contracts.pol.wberaStakerVault['mainnet-address']}}</a></small>
> <small><a target="_blank" :href="config.websites.berascan.url + 'address/' + config.contracts.pol.wberaStakerVault.address.berachainMainnet">{{config.contracts.pol.wberaStakerVault.address.berachainMainnet}}</a></small>

<ClientOnly>
<Token title="$sWBERA" image="https://res.cloudinary.com/duv0g402y/image/upload/v1752588172/brand/swbera.png" />
</ClientOnly>

`$swBERA` (Staked `$WBERA`) is a yield-bearing token that represents your staked `$BERA` position in the Staking Vault. It provides non-dilutive yield through Proof of Liquidity incentive redirection.
`$swBERA` (Staked $WBERA) is a yield-bearing token that represents your staked $BERA position in the Staking Vault. It provides non-dilutive yield through Proof of Liquidity incentive redirection.

## How to Get $sWBERA

`$sWBERA` tokens are issued when you stake `$BERA` or `$WBERA` in the Staking Vault. For detailed instructions on how to stake BERA and receive `$sWBERA` tokens, see the [`$BERA` Staking Guide](/learn/guides/bera-staking).
`$sWBERA` tokens are issued when you stake $BERA or $WBERA in the Staking Vault. For detailed instructions on how to stake BERA and receive `$sWBERA` tokens, see the [$BERA Staking Guide](/learn/guides/bera-staking).

You can stake either native `$BERA` (which the system automatically wraps to `$WBERA`) or `$WBERA` directly if you already have wrapped `$BERA` tokens. Both methods result in receiving `$sWBERA` tokens representing your staked position.
You can stake either native $BERA (which the system automatically wraps to $WBERA) or $WBERA directly if you already have wrapped $BERA tokens. Both methods result in receiving `$sWBERA` tokens representing your staked position.

## How $sWBERA Works

### Non-Dilutive Yield Mechanism

`$sWBERA` earns yield through a **non-dilutive mechanism** that doesn't inflate the token supply. Instead, the underlying value of each `$sWBERA` token increases as the vault accumulates more WBERA from incentive redirection.
`$sWBERA` earns yield through a **non-dilutive mechanism** that doesn't inflate the token supply. Instead, the underlying value of each `$sWBERA` token increases as the vault accumulates more WBERA from incentive fees.

### Proof of Liquidity Incentive Redirection

The yield comes from the **33% incentive redirection** from PoL protocols. When protocols pay incentives to validators for directing `$BGT` emissions, 33% is redirected during incentive distribution and sent to the Incentive Collector. These redirected incentives are then auctioned for `$WBERA` through automated market mechanisms, and the `$WBERA` is distributed to Staking Vault stakers, increasing the value of `$sWBERA` tokens.
The yield comes from the **33% incentive tax** collected from PoL protocols. When protocols pay incentives to validators for directing $BGT emissions, a 33% fee is collected during incentive distribution and sent to the Incentive Fee Collector. These fees are then auctioned for $WBERA through automated market mechanisms, and the $WBERA is distributed to Staking Vault stakers, increasing the value of `$sWBERA` tokens.

### Auto-Compounding

Expand All @@ -50,11 +50,11 @@ Your rewards automatically compound without any manual intervention. No claiming

### 7-Day Unbonding Period

To convert your `$sWBERA` tokens back to `$BERA` or `$WBERA`, you'll need to unstake through the Staking Vault. The unstaking process has a **7-day unbonding period**:
To convert your `$sWBERA` tokens back to $BERA or $WBERA, you'll need to unstake through the Staking Vault. The unstaking process has a **7-day unbonding period**:

1. **Initiate withdrawal**: Queue a withdrawal request through the [Staking Vault interface](https://hub.berachain.com/stake/)
2. **Wait 7 days**: Your withdrawal request enters a 7-day cooldown period
3. **Complete withdrawal**: After the unbonding period ends, return to the interface to complete the withdrawal and receive your `$WBERA` tokens
3. **Complete withdrawal**: After the unbonding period ends, return to the interface to complete the withdrawal and receive your $WBERA tokens

### Important Considerations

Expand Down
2 changes: 1 addition & 1 deletion apps/core/content/nodes/guides/validator.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ The following traits denote a successful registration:

## Step 5 - Activation or top-up

Having completed the registration, you can now deposit additional $BERA. The floor for becoming a validator is `{{ config.mainnet.minEffectiveBalance.toLocaleString() }} $BERA`, and you must be among the top `{{ config.mainnet.validatorActiveSetSize }}` validators, ordered by $BERA staked.
Having completed the registration, you can now deposit additional $BERA. The floor for becoming a validator is `{{ config.mainnet.minEffectiveBalance }} $BERA`, and you must be among the top `{{ config.mainnet.validatorActiveSetSize }}` validators, ordered by $BERA staked.

These subsequent deposits are done by calling the same `deposit` function, with only the **public key** required; the other elements may be zero, but must still be the right length.

Expand Down
6 changes: 5 additions & 1 deletion apps/core/content/nodes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ The minimum stake requirement depends on whether the active set is completely fu

If the active set is not full, the minimum stake requirement is `{{config.mainnet.validatorDepositAmount.toLocaleString()}}` `$BERA`.

If the active set is full, the minimum stake requirement is `1` `$BERA` more than the amount staked by the last validator in the active set.
If the active set is full, the minimum stake requirement is `10,000` `$BERA` more than the amount staked by the last validator in the active set.

It can take up to `{{config.mainnet.validatorActivationEpochDelay}}` epochs (`{{config.mainnet.blocksPerEpoch}}` blocks per epoch) for deposits to be processed and for a validator to be included in the active set.

Expand All @@ -57,6 +57,10 @@ This means that validators will have to communicate how they handle funds when a
Avoid staking to validators without knowing how they handle funds when a validator is removed from the active set.
:::

## Staking Pools

Validators can also operate **staking pools**, which enable liquid staking services for their communities. Staking pools use smart contracts to manage deposits and withdrawals, allowing stakers to receive liquid shares (stBERA) that automatically grow in value as rewards accumulate. Staking pools provide validators with a way to build and monetize their own community of stakers while offering stakers lower barriers to entry and flexible withdrawals. For information about setting up and operating staking pools, see the [Staking Pools documentation](/nodes/staking-pools).

## Removed From Active Set ❌

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, which is set when the validator makes their first deposit.
Expand Down
Loading