diff --git a/UBIQUITOUS_LANGUAGE.md b/UBIQUITOUS_LANGUAGE.md
index 37cf278..7d2bf80 100644
--- a/UBIQUITOUS_LANGUAGE.md
+++ b/UBIQUITOUS_LANGUAGE.md
@@ -28,15 +28,15 @@
## Contracts
-| Term | Definition | Aliases to avoid |
-| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- |
-| **Incentive commission** | Validator operator's share of incentive tokens: `(amount * commissionRate) / 1e4`. Max 20%, default 5%. | Validator commission (acceptable shorthand) |
-| **Incentive Auction** | Settlement where a buyer pays WBERA to `BGTIncentiveFeeCollector` and receives accumulated redirected incentive tokens. | Fee collection |
-| **BGTIncentiveFeeCollector** | Installed as `RewardVaultFactory.incentiveTokensCollector`. Splits auction WBERA pro-rata between `WBERAStakerVault` and registered `LSTStakerVault`s. | FeeCollector (different contract — pays BGTStaker, legacy) |
-| **IncentiveCollector** | Pool-level contract that auctions operator commission incentive tokens for BERA, flowing to `StakingRewardsVault`. | Not the same as BGTIncentiveFeeCollector |
-| **WBERAStakerVault** | Issues sWBERA. Receives WBERA from the Incentive Auction. | Staking Vault (acceptable in user-facing docs) |
-| **LSTStakerVault** | Governance-registered vault that receives Incentive Auction WBERA (converted to LST via adapter). | Pool vault (these are not staking pool contracts) |
-| **Staking Pool** | Contract where users deposit BERA via `submit()` and receive non-transferable stBERA shares. Managed by a SmartOperator. | — |
+| Term | Definition | Aliases to avoid |
+| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- |
+| **Incentive commission** | Validator operator's share of incentive tokens: `(amount * commissionRate) / 1e4`. Max 20%, default 5%. | Validator commission (acceptable shorthand) |
+| **Incentive Auction** | Settlement where a buyer pays WBERA to `IncentivesCollector` and receives accumulated redirected incentive tokens. | Fee collection |
+| **IncentivesCollector** | Installed as `RewardVaultFactory.incentiveTokensCollector`. Splits auction WBERA pro-rata between `WBERAStakerVault` and registered `LSTStakerVault`s. | FeeCollector (different contract — pays BGTStaker, legacy) |
+| **IncentiveCollector** | Pool-level contract that auctions operator commission incentive tokens for BERA, flowing to `StakingRewardsVault`. | Not the same as IncentivesCollector |
+| **WBERAStakerVault** | Issues sWBERA. Receives WBERA from the Incentive Auction. | Staking Vault (acceptable in user-facing docs) |
+| **LSTStakerVault** | Governance-registered vault that receives Incentive Auction WBERA (converted to LST via adapter). | Pool vault (these are not staking pool contracts) |
+| **Staking Pool** | Contract where users deposit BERA via `submit()` and receive non-transferable stBERA shares. Managed by a SmartOperator. | — |
## Yield paths
@@ -45,16 +45,16 @@
| **Validator operator** | Base rate (0.4 WBERA/block) | BlockRewardController → operator |
| **Validator operator** | Incentive commission | RewardVault → operator |
| **Vault staker** | Allocated WBERA emissions | Distributor → RewardVault → claim |
-| **sWBERA staker** | Incentive Auction WBERA | BGTIncentiveFeeCollector → WBERAStakerVault |
-| **LST staker** | Incentive Auction WBERA → LST | BGTIncentiveFeeCollector → LSTAdapter → LSTStakerVault |
+| **sWBERA staker** | Incentive Auction WBERA | IncentivesCollector → WBERAStakerVault |
+| **LST staker** | Incentive Auction WBERA → LST | IncentivesCollector → LSTAdapter → LSTStakerVault |
| **Staking pool depositor** | Operator WBERA + pool incentive auction BERA | SmartOperator + IncentiveCollector → StakingRewardsVault → pool rebase |
## Key relationships
- **stBERA is not an LST.** Pool shares have no transfer surface. A staking pool depositor cannot stake stBERA anywhere.
- **iBERA is an LST.** Infrared issues iBERA as a transferable ERC-20. Users stake iBERA into the registered LSTStakerVault (siBERA, `0xA350…`) to earn Incentive Auction yield.
-- **The core Incentive Auction does not pay staking pools.** BGTIncentiveFeeCollector sends WBERA to WBERAStakerVault and LSTStakerVaults only. Staking pools have their own IncentiveCollector — a separate auction system.
-- **sWBERA and LST staker yields come from the same auction.** BGTIncentiveFeeCollector splits WBERA pro-rata by WBERA-denominated totalAssets across both vault types.
+- **The core Incentive Auction does not pay staking pools.** IncentivesCollector sends WBERA to WBERAStakerVault and LSTStakerVaults only. Staking pools have their own IncentiveCollector — a separate auction system.
+- **sWBERA and LST staker yields come from the same auction.** IncentivesCollector splits WBERA pro-rata by WBERA-denominated totalAssets across both vault types.
## Example dialogue
@@ -68,10 +68,10 @@
>
> **Dev:** "What about gBERA?"
>
-> **Domain expert:** "gBERA exists as a token but has no registered LSTStakerVault on the BGTIncentiveFeeCollector. It doesn't earn auction yield until governance registers a vault for it."
+> **Domain expert:** "gBERA exists as a token but has no registered LSTStakerVault on the IncentivesCollector. It doesn't earn auction yield until governance registers a vault for it."
## Flagged ambiguities
- **"Delegator"**: No `delegate()` for BERA staking. Use **BERA staker**. `DelegationHandler` in contracts-staking-pools is Foundation capital management. `RewardVault.delegateStake()` is custodial receipt-token staking.
- **"Staking pool staker" vs "LST staker"**: Distinct roles. Never hyphenate as one group. Pool depositors hold soulbound stBERA. LST stakers hold transferable tokens like iBERA.
-- **"FeeCollector" vs "BGTIncentiveFeeCollector"**: Different contracts. FeeCollector pays BGTStaker (legacy). BGTIncentiveFeeCollector splits to sWBERA + LST vaults. Use "incentive tokens collector" as the generic role name.
+- **"FeeCollector" vs "IncentivesCollector"**: Different contracts. FeeCollector pays BGTStaker (legacy). IncentivesCollector splits to sWBERA + LST vaults. Use "incentive tokens collector" as the generic role name.
diff --git a/build/bex/deployed-contracts.mdx b/build/bex/deployed-contracts.mdx
index 86a90f7..e299b27 100644
--- a/build/bex/deployed-contracts.mdx
+++ b/build/bex/deployed-contracts.mdx
@@ -18,9 +18,4 @@ For more information, see the [Balancer disclosure](https://forum.balancer.fi/t/
The following is a list of contract addresses for interacting with Berachain BEX.
-
- A full list of contract ABIs can be found at
- [github.com/berachain/doc-abis](https://github.com/berachain/doc-abis).
-
-
diff --git a/build/getting-started/deployed-contracts.mdx b/build/getting-started/deployed-contracts.mdx
index 754f188..2b3b416 100644
--- a/build/getting-started/deployed-contracts.mdx
+++ b/build/getting-started/deployed-contracts.mdx
@@ -4,7 +4,6 @@ description: "Berachain core and staking-pool contract addresses by network."
---
import CoreContractsTable from "/snippets/contracts/generated/core-contracts-table.mdx";
-import StakingPoolSingletonsTable from "/snippets/contracts/generated/staking-pools-singletons-table.mdx";
For **BEX** (DEX) addresses, see [BEX deployed contracts](/build/bex/deployed-contracts). For **Bend** (lending) addresses, see [Bend deployed contracts](/build/bend/deployed-contracts).
@@ -12,7 +11,6 @@ All contracts are verified at the [block explorer](https://berascan.com).
- ABI files: [berachain/abis](https://github.com/berachain/abis).
- Core protocol: [berachain/contracts](https://github.com/berachain/contracts).
-- Staking pools: [berachain/contracts-staking-pools](https://github.com/berachain/contracts-staking-pools).
All audit reports are publicly available on
@@ -20,9 +18,3 @@ All contracts are verified at the [block explorer](https://berascan.com).
-
-## Staking pool contracts
-
-Shared singleton addresses for staking pools are listed below. For per-pool proxies, behavior, and links to the guides repo, see [Staking pool contracts](/nodes/staking-pools/contracts).
-
-
diff --git a/build/pol/lst-integration.mdx b/build/pol/lst-integration.mdx
index d23c5b6..65cc1ba 100644
--- a/build/pol/lst-integration.mdx
+++ b/build/pol/lst-integration.mdx
@@ -3,13 +3,13 @@ title: "LST Integration for PoL Auction Yield"
description: "Register an LSTStakerVault so your LST product earns a pro-rata share of WBERA paid through the PoL Incentive Auction."
---
-Liquid Staking Token (LST) issuers can plug their staked-LST product into the Berachain Proof of Liquidity (PoL) Incentive Auction. Once an `LSTStakerVault` and its adapter are registered on `BGTIncentiveFeeCollector`, the vault automatically receives a pro-rata share of every WBERA payment auction buyers make against redirected Reward Vault incentive tokens.
+Liquid Staking Token (LST) issuers can plug their staked-LST product into the Berachain Proof of Liquidity (PoL) Incentive Auction. Once an `LSTStakerVault` and its adapter are registered on `IncentivesCollector`, the vault automatically receives a pro-rata share of every WBERA payment auction buyers make against redirected Reward Vault incentive tokens.
This page is the integrator-facing guide. For the auction mechanics from the protocol side, see [Incentive Marketplace — Incentive fee settlement](/general/proof-of-liquidity/incentives#incentive-fee-settlement).
## What registration enables
-When a buyer settles redirected incentive tokens through `BGTIncentiveFeeCollector`, the WBERA they pay is split **pro-rata, by WBERA-denominated total assets**, across:
+When a buyer settles redirected incentive tokens through `IncentivesCollector`, the WBERA they pay is split **pro-rata, by WBERA-denominated total assets**, across:
- The shared `WBERAStakerVault` (sWBERA stakers).
- Every registered `LSTStakerVault` whose LST has an adapter that converts WBERA into the underlying LST.
@@ -20,8 +20,8 @@ Stakers of a registered LST do not need to interact with PoL directly. As long a
## How auction yield reaches an LST vault
-1. Reward Vaults transfer redirected incentive tokens (incentives not paid as validator commission) into `BGTIncentiveFeeCollector`.
-2. An auction buyer calls `claimFees(recipient, feeTokens)` and pays WBERA into the collector.
+1. Reward Vaults transfer redirected incentive tokens (incentives not paid as validator commission) into `IncentivesCollector`.
+2. An auction buyer calls `claim(recipient, incentiveTokens)` and pays WBERA into the collector.
3. The collector splits the paid WBERA pro-rata across the sWBERA Staking Vault and registered `LSTStakerVault`s, sized by each vault's WBERA-denominated total assets.
4. For each registered LST vault, the collector calls the vault's registered **adapter** to convert that WBERA share into the vault's underlying LST, then credits the LST to the vault through `receiveRewards`.
5. The vault's per-share value rises; its stakers earn the increment without taking any action.
@@ -51,7 +51,7 @@ The vault must implement `receiveRewards` so that the collector can credit conve
The adapter is the contract that converts WBERA into your underlying LST during auction settlement. It must:
-- Accept WBERA from `BGTIncentiveFeeCollector`.
+- Accept WBERA from `IncentivesCollector`.
- Convert that WBERA into the LST (through your protocol's mint, swap, or wrap path).
- Hand the resulting LST to the registered `LSTStakerVault` via `receiveRewards`.
@@ -59,14 +59,14 @@ Adapter design is LST-specific. Refer to the iBERA adapter for a working pattern
### 3. Register the vault and adapter with governance
-Submit a governance proposal to call `addLstStakerVault` on `BGTIncentiveFeeCollector`, supplying:
+Submit a governance proposal to call `addLstStakerVault` on `IncentivesCollector`, supplying:
- The deployed `LSTStakerVault` address.
- The deployed adapter address.
Once the registry write lands, the collector includes the new vault in every subsequent pro-rata split. The vault begins accruing WBERA-sourced LST yield on the next auction settlement.
-See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the live `BGTIncentiveFeeCollector` and `LSTStakerVaultFactory` addresses on each network.
+See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the live `IncentivesCollector` and `LSTStakerVaultFactory` addresses on each network.
## Operational notes
@@ -77,5 +77,5 @@ See [Deployed contract addresses](/build/getting-started/deployed-contracts) for
- [Incentive Marketplace — Incentive fee settlement](/general/proof-of-liquidity/incentives#incentive-fee-settlement) — the auction mechanics from the protocol side.
- [\$sWBERA Token](/general/tokens/swbera) — the sister product that shares the pro-rata WBERA split.
-- [Deployed contract addresses](/build/getting-started/deployed-contracts) — current `BGTIncentiveFeeCollector` and `LSTStakerVaultFactory` addresses.
+- [Deployed contract addresses](/build/getting-started/deployed-contracts) — current `IncentivesCollector` and `LSTStakerVaultFactory` addresses.
- [Proof of Liquidity Overview](/general/proof-of-liquidity/overview) — the broader PoL picture.
diff --git a/data/contracts.json b/data/contracts.json
index 39880f9..79304f8 100644
--- a/data/contracts.json
+++ b/data/contracts.json
@@ -9,26 +9,47 @@
"pol": {
"berachef": {
"name": "BeraChef",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BeraChef.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BeraChef.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BeraChef.json"
+ },
"address": {
"berachainMainnet": "0xdf960E8F3F19C481dDE769edEDD439ea1a63426a",
"berachainBepolia": "0xdf960E8F3F19C481dDE769edEDD439ea1a63426a"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/BeraChef.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BeraChef.sol"
}
},
"blockRewardController": {
"name": "BlockRewardController",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BlockRewardController.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BlockRewardController.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BlockRewardController.json"
+ },
"address": {
"berachainMainnet": "0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e",
"berachainBepolia": "0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/BlockRewardController.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BlockRewardController.sol"
}
},
"distributor": {
"name": "Distributor",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/Distributor.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/Distributor.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/Distributor.json"
+ },
"address": {
"berachainMainnet": "0xD2f19a79b026Fb636A7c300bF5947df113940761",
"berachainBepolia": "0xD2f19a79b026Fb636A7c300bF5947df113940761"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/Distributor.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/Distributor.sol"
}
},
"dedicatedEmissionStreamManager": {
@@ -36,106 +57,198 @@
"address": {
"berachainMainnet": "0x813dCdBa9197947792985c866cE98D6739cA821A",
"berachainBepolia": "0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd"
+ },
+ "abi": {
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/DedicatedEmissionStreamManager.json",
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/DedicatedEmissionStreamManager.json"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/DedicatedEmissionStreamManager.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/DedicatedEmissionStreamManager.sol"
}
},
"feeCollector": {
"name": "FeeCollector",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/FeeCollector.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/FeeCollector.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/FeeCollector.json"
+ },
"address": {
"berachainMainnet": "0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650",
"berachainBepolia": "0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/FeeCollector.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/FeeCollector.sol"
}
},
"bgtIncentiveFeeCollector": {
- "name": "BGTIncentiveFeeCollector",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGTIncentiveFeeCollector.json",
+ "name": "IncentivesCollector",
+ "abi": {
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/IncentivesCollector.json",
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/IncentivesCollector.json"
+ },
"address": {
"berachainMainnet": "0x1984Baf659607Cc5f206c55BB3B00eb3E180190B",
"berachainBepolia": "0x1984Baf659607Cc5f206c55BB3B00eb3E180190B"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/IncentivesCollector.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/IncentivesCollector.sol"
}
},
"rewardVaultFactory": {
"name": "RewardVaultFactory",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultFactory.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultFactory.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultFactory.json"
+ },
"address": {
"berachainMainnet": "0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8",
"berachainBepolia": "0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultFactory.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultFactory.sol"
}
},
"rewardVaultHelper": {
"name": "RewardVaultHelper",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultHelper.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultHelper.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultHelper.json"
+ },
"address": {
"berachainMainnet": "0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2",
"berachainBepolia": "0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultHelper.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultHelper.sol"
}
},
"lstStakerVaultFactory": {
"name": "LSTStakerVaultFactory",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/lst/LSTStakerVaultFactory.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/lst/LSTStakerVaultFactory.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/lst/LSTStakerVaultFactory.json"
+ },
"address": {
"berachainMainnet": "0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500",
"berachainBepolia": "0xAf10B532cCC25B26a8e28913D5C4056a77e7a178"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/lst/LSTStakerVaultFactory.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/lst/LSTStakerVaultFactory.sol"
}
},
"honeyFactory": {
"name": "HoneyFactory",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/HoneyFactory.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/HoneyFactory.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/HoneyFactory.json"
+ },
"address": {
"berachainMainnet": "0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401",
"berachainBepolia": "0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/honey/HoneyFactory.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/honey/HoneyFactory.sol"
}
}
},
"tokens": {
"bgtToken": {
"name": "BGT Token",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGT.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGT.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BGT.json"
+ },
"address": {
"berachainMainnet": "0x656b95E550C07a9ffe548bd4085c72418Ceb1dba",
"berachainBepolia": "0x656b95E550C07a9ffe548bd4085c72418Ceb1dba"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/BGT.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/BGT.sol"
}
},
"wbera": {
"name": "WBERA",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/WBERA.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/WBERA.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/WBERA.json"
+ },
"address": {
"berachainMainnet": "0x6969696969696969696969696969696969696969",
"berachainBepolia": "0x6969696969696969696969696969696969696969"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/WBERA.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/WBERA.sol"
}
},
"honey": {
"name": "HONEY",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/Honey.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/Honey.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/Honey.json"
+ },
"address": {
"berachainMainnet": "0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce",
"berachainBepolia": "0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/honey/Honey.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/honey/Honey.sol"
}
},
"wberaStakerVault": {
"name": "WBERA Staker Vault (sWBERA)",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/WBERAStakerVault.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/WBERAStakerVault.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/WBERAStakerVault.json"
+ },
"address": {
"berachainMainnet": "0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a",
"berachainBepolia": "0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/WBERAStakerVault.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/WBERAStakerVault.sol"
}
}
},
"governance": {
"governance": {
"name": "Governance",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/BerachainGovernance.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/BerachainGovernance.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/BerachainGovernance.json"
+ },
"address": {
"berachainMainnet": "0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5",
"berachainBepolia": "0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/gov/BerachainGovernance.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/gov/BerachainGovernance.sol"
}
},
"timelock": {
"name": "Timelock",
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/TimeLock.json",
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/TimeLock.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/TimeLock.json"
+ },
"address": {
"berachainMainnet": "0xb5f2000b5744f207c931526cAE2134cAa8b6862a",
"berachainBepolia": "0xb5f2000b5744f207c931526cAE2134cAa8b6862a"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/gov/TimeLock.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/gov/TimeLock.sol"
}
}
},
@@ -145,6 +258,14 @@
"address": {
"berachainMainnet": "0x4242424242424242424242424242424242424242",
"berachainBepolia": "0x4242424242424242424242424242424242424242"
+ },
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BeaconDeposit.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BeaconDeposit.json"
+ },
+ "source": {
+ "berachainMainnet": "https://github.com/berachain/contracts/blob/main/src/pol/BeaconDeposit.sol",
+ "berachainBepolia": "https://github.com/berachain/contracts/blob/bepolia/src/pol/BeaconDeposit.sol"
}
},
"create2": {
@@ -153,7 +274,8 @@
"address": {
"berachainMainnet": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"berachainBepolia": "0x4e59b44847b379578588920cA78FbF26c0B4956C"
- }
+ },
+ "reference": "https://github.com/Arachnid/deterministic-deployment-proxy"
},
"multicall3": {
"name": "Multicall3",
@@ -161,7 +283,8 @@
"address": {
"berachainMainnet": "0xcA11bde05977b3631167028862bE2a173976CA11",
"berachainBepolia": "0xcA11bde05977b3631167028862bE2a173976CA11"
- }
+ },
+ "reference": "https://github.com/mds1/multicall"
},
"permit2": {
"name": "Permit2",
@@ -169,7 +292,8 @@
"address": {
"berachainMainnet": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
"berachainBepolia": "0x000000000022D473030F116dDEE9F6B43aC78BA3"
- }
+ },
+ "reference": "https://docs.uniswap.org/contracts/permit2/overview"
}
},
"nfts": {
@@ -219,7 +343,6 @@
"bex": {
"vault": {
"name": "Vault",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IVault.abi.json",
"address": {
"berachainMainnet": "0x4Be03f781C497A489E3cB0287833452cA9B9E80B",
"berachainBepolia": "0x708cA656b68A6b7384a488A36aD33505a77241FE"
@@ -227,7 +350,6 @@
},
"protocolFeesCollector": {
"name": "ProtocolFeesCollector",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesCollector.abi.json",
"address": {
"berachainMainnet": "0xB8Cf46Cf1b1476E707619913a70B2085d26f1707",
"berachainBepolia": "0x05A607aCf3548E84DD1E44c3706F850c849058Da"
@@ -235,7 +357,6 @@
},
"balancerHelpers": {
"name": "BalancerHelpers",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IBalancerHelpers.abi.json",
"address": {
"berachainMainnet": "0x5083737EC75a728c265BE578C9d0d5333a2c5951",
"berachainBepolia": "0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f"
@@ -243,7 +364,6 @@
},
"poolCreationHelper": {
"name": "PoolCreationHelper",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IPoolCreationHelper.abi.json",
"address": {
"berachainMainnet": "0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2",
"berachainBepolia": "0x0dC9964F6CA33d9EF38DEB4925234766127C6B36"
@@ -251,7 +371,6 @@
},
"protocolFeesWithdrawer": {
"name": "ProtocolFeesWithdrawer",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesWithdrawer.abi.json",
"address": {
"berachainMainnet": "0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7",
"berachainBepolia": "0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06"
@@ -259,7 +378,6 @@
},
"stablePoolFactory": {
"name": "ComposableStablePoolFactory",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IComposableStablePoolFactoryCreateV6.abi.json",
"address": {
"berachainMainnet": "0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1",
"berachainBepolia": "0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1"
@@ -281,7 +399,6 @@
},
"balancerRelayer": {
"name": "BalancerRelayer",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IBalancerRelayer.abi.json",
"address": {
"berachainMainnet": "0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7",
"berachainBepolia": "0x343215E156Ff586711a5B8C49Fe3099BAF22624C"
@@ -289,7 +406,6 @@
},
"weightedPoolFactory": {
"name": "WeightedPoolFactory",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IWeightedPoolFactory.abi.json",
"address": {
"berachainMainnet": "0xa966fA8F2d5B087FFFA499C0C1240589371Af409",
"berachainBepolia": "0xf1d23276C7b271B2aC595C78977b2312E9954D57"
@@ -297,7 +413,6 @@
},
"protocolFeePercentagesProvider": {
"name": "ProtocolFeePercentagesProvider",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeePercentagesProvider.abi.json",
"address": {
"berachainMainnet": "0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf",
"berachainBepolia": "0x8119E412E00fe3c857739E95dB147817Bf615dB8"
@@ -305,7 +420,6 @@
},
"balancerQueries": {
"name": "BalancerQueries",
- "abi": "https://github.com/berachain/doc-abis/blob/main/bex/IBalancerQueries.abi.json",
"address": {
"berachainMainnet": "0x3C612e132624f4Bd500eE1495F54565F0bcc9b59",
"berachainBepolia": "0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92"
@@ -440,7 +554,10 @@
"berachainMainnet": "0xb79b43dBA821Cb67751276Ce050fF4111445fB99",
"berachainBepolia": "0x24b8223864d3936F56e5a24C4245ae7620471D4C"
},
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json"
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/StakingPoolContractsFactory.json"
+ }
},
"delegationHandlerFactory": {
"name": "DelegationHandlerFactory",
@@ -448,7 +565,10 @@
"berachainMainnet": "0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0",
"berachainBepolia": "0x0aEf09EC97bAc354d31F180b401454cB76abc395"
},
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json"
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/delegation/DelegationHandlerFactory.json"
+ }
},
"withdrawalVault": {
"name": "WithdrawalVault",
@@ -456,7 +576,10 @@
"berachainMainnet": "0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4",
"berachainBepolia": "0xBBed2D94338cdE2926A8C0576432De32C05c66e9"
},
- "abi": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json"
+ "abi": {
+ "berachainMainnet": "https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json",
+ "berachainBepolia": "https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/WithdrawalVault.json"
+ }
}
}
}
diff --git a/data/pol-addresses-mapping.json b/data/pol-addresses-mapping.json
index 26169f7..bd6bd16 100644
--- a/data/pol-addresses-mapping.json
+++ b/data/pol-addresses-mapping.json
@@ -47,12 +47,12 @@
},
{ "polField": "bgtIncentiveDistributorImpl", "kind": "implementation", "published": false },
{
- "polField": "bgtIncentiveFeeCollector",
+ "polField": "incentivesCollector",
"contractsPath": "pol.bgtIncentiveFeeCollector",
"kind": "proxy",
"published": true
},
- { "polField": "bgtIncentiveFeeCollectorImpl", "kind": "implementation", "published": false },
+ { "polField": "incentivesCollectorImpl", "kind": "implementation", "published": false },
{ "polField": "wberaStakerVault", "contractsPath": "tokens.wberaStakerVault", "kind": "proxy", "published": true },
{ "polField": "wberaStakerVaultImpl", "kind": "implementation", "published": false },
{
diff --git a/general/help/faqs.mdx b/general/help/faqs.mdx
index eb8f792..72c346f 100644
--- a/general/help/faqs.mdx
+++ b/general/help/faqs.mdx
@@ -63,7 +63,7 @@ description: "Common questions about Berachain."
\$sWBERA earns yield from the Incentive Auction. Protocols fund incentive tokens to attract
validator reward allocation; after validator commission, the remaining incentive tokens are
- redirected to `BGTIncentiveFeeCollector`. Auction buyers pay WBERA to claim those tokens, and that
+ redirected to `IncentivesCollector`. Auction buyers pay WBERA to claim those tokens, and that
WBERA is split pro-rata between the \$sWBERA Staking Vault and registered LST staker vaults.
Holding \$sWBERA gives you a share of that yield without needing to manage vault positions or
validator selection.
diff --git a/general/help/glossary.mdx b/general/help/glossary.mdx
index c356b32..a5896a8 100644
--- a/general/help/glossary.mdx
+++ b/general/help/glossary.mdx
@@ -129,4 +129,4 @@ The process of exchanging one token for another on a decentralized exchange. Swa
## WBERA staking
-By staking BERA or WBERA into the Staking Vault, holders receive \$sWBERA and earn yield from the Incentive Auction. After validator commission (default 5%, max 20%), redirected incentive tokens are settled for WBERA via `BGTIncentiveFeeCollector`; auction WBERA is split pro-rata between the \$sWBERA vault and registered LST staker vaults. Read more in [`\$sWBERA`](/general/tokens/swbera).
+By staking BERA or WBERA into the Staking Vault, holders receive \$sWBERA and earn yield from the Incentive Auction. After validator commission (default 5%, max 20%), redirected incentive tokens are settled for WBERA via `IncentivesCollector`; auction WBERA is split pro-rata between the \$sWBERA vault and registered LST staker vaults. Read more in [`\$sWBERA`](/general/tokens/swbera).
diff --git a/general/proof-of-liquidity/changelog.mdx b/general/proof-of-liquidity/changelog.mdx
index 10d3d45..6ca021c 100644
--- a/general/proof-of-liquidity/changelog.mdx
+++ b/general/proof-of-liquidity/changelog.mdx
@@ -58,6 +58,14 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid
### PoL Contract changes
+#### Contracts & Interfaces Renamed
+
+| Renamed From | Renamed To |
+| --------------------------- | ----------------------------- |
+| `BGTIncentiveFeeCollector` | `IncentivesCollector` |
+| `IBGTIncentiveFeeCollector` | `IIncentivesCollector` |
+| `BGTIncentiveFeeDeployer` | `IncentivesCollectorDeployer` |
+
#### Functions
| Interface added | What |
@@ -80,6 +88,9 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid
| `withdraw(uint256)` | `Distributor` |
| `initialize()` (reinitializer) | `Distributor` |
| `rewardToken()` | `StakingRewards`, `RewardVault` |
+| `claim(address, address[])` | `IIncentivesCollector`, `IncentivesCollector` |
+
+`claimFees(address, address[])` remains exposed on `IIncentivesCollector` and `IncentivesCollector`; it delegates to the same settlement flow as `claim(address, address[])`.
| Functions Removed | Location |
| -------------------------------------------------- | ------------------------------------------------- |
@@ -136,6 +147,8 @@ References: [BGT](/general/tokens/bgt), [Reward vaults](/general/proof-of-liquid
| `IncentiveFeeCollected` → `IncentivesCollected` | Full rename + parameter rename |
| `IncentiveFeeCollectionFailed` → `IncentivesCollectionFailed` | Full rename + parameter rename |
| `IncentiveFeeCollectorUpdated` → `IncentiveTokensCollectorUpdated` | Full rename |
+| `IncentiveFeesClaimed` → `IncentivesClaimed` | Full rename |
+| `IncentiveFeeTokenClaimed` → `IncentiveTokenClaimed` | Full rename |
#### Errors
diff --git a/general/proof-of-liquidity/incentives.mdx b/general/proof-of-liquidity/incentives.mdx
index f4cf4ec..15df1e6 100644
--- a/general/proof-of-liquidity/incentives.mdx
+++ b/general/proof-of-liquidity/incentives.mdx
@@ -45,7 +45,7 @@ Rates can increase when the token manager deposits more inventory. Decreasing ra
## Commission and payouts
-Validator commission is capped at **20%**. Reward Vault incentive processing sends the validator commission to the validator operator and sends the remaining incentive tokens to `BGTIncentiveFeeCollector`.
+Validator commission is capped at **20%**. Reward Vault incentive processing sends the validator commission to the validator operator and sends the remaining incentive tokens to `IncentivesCollector`.
```mermaid actions={false}
flowchart LR
@@ -58,10 +58,10 @@ flowchart LR
## Incentive fee settlement
-The redirected incentive share collects in `BGTIncentiveFeeCollector`, the shared settlement path for Reward Vault incentives. Incentive tokens accumulate in the collector,
+The redirected incentive share collects in `IncentivesCollector`, the shared settlement path for Reward Vault incentives. Incentive tokens accumulate in the collector,
and WBERA paid into settlement becomes yield for \$sWBERA stakers and registered LST stakers.
-See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the current **BGTIncentiveFeeCollector** address.
+See [Deployed contract addresses](/build/getting-started/deployed-contracts) for the current **IncentivesCollector** address.
### Settlement behavior
diff --git a/general/tokens/honey.mdx b/general/tokens/honey.mdx
index de3a9b1..e82a0bd 100644
--- a/general/tokens/honey.mdx
+++ b/general/tokens/honey.mdx
@@ -103,4 +103,4 @@ Let's walk through minting and redeeming `$HONEY` with `$USDC`:
- User redeems `1,000 $HONEY` for `$USDC`
- Receives `999.5 $USDC` (0.05% fee = 0.5 $USDC)
-- The `0.5 $USDC` fee is split between polFeeCollector (BGTIncentiveFeeCollector, routing fees into sWBERA yield) and feeReceiver based on governance-configured polFeeCollectorFeeRate
+- The `0.5 $USDC` fee is split between polFeeCollector (IncentivesCollector, routing fees into sWBERA yield) and feeReceiver based on governance-configured polFeeCollectorFeeRate
diff --git a/general/tokens/swbera.mdx b/general/tokens/swbera.mdx
index f2f313c..f1fcfdf 100644
--- a/general/tokens/swbera.mdx
+++ b/general/tokens/swbera.mdx
@@ -19,7 +19,7 @@ You can stake either native BERA (which the system automatically wraps to WBERA)
### Incentive Auction yield
-Yield comes from the Incentive Auction. When Reward Vaults process funded incentive tokens, validator commission (default 5%, max 20%) goes to the validator operator and the remaining incentive tokens are redirected to `BGTIncentiveFeeCollector`. Auction buyers pay WBERA to claim those tokens; the \$sWBERA vault's share of that WBERA (pro-rata with registered LST staker vaults) increases the underlying WBERA per \$sWBERA.
+Yield comes from the Incentive Auction. When Reward Vaults process funded incentive tokens, validator commission (default 5%, max 20%) goes to the validator operator and the remaining incentive tokens are redirected to `IncentivesCollector`. Auction buyers pay WBERA to claim those tokens; the \$sWBERA vault's share of that WBERA (pro-rata with registered LST staker vaults) increases the underlying WBERA per \$sWBERA.
For direct claim routing from Reward Vaults into \$sWBERA, see [RewardVaultHelper claim flow](/build/pol/reward-vault-helper-claim-flow).
diff --git a/nodes/operations/fusaka.mdx b/nodes/operations/fusaka.mdx
index d48e172..19ee98e 100644
--- a/nodes/operations/fusaka.mdx
+++ b/nodes/operations/fusaka.mdx
@@ -53,8 +53,8 @@ The old style of `--chain ` still works, but you must be sure to fetch and
1. **If you are running Bera-Geth, you [have to migrate to Bera-Reth](/nodes/operations/bera-geth-to-reth).**
2. Download the [recommended versions](/nodes/architecture/evm-execution).
3. Adjust Bera-Reth startup:
- - Change your `--chain` option to `--chain bepolia` and remove `--bootnodes [enode-list]`.
- - OR download and fetch the current bepolia genesis file from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it.
+ - Change your `--chain` option to `--chain bepolia` or `--chain mainnet`, and remove `--bootnodes [enode-list]`.
+ - OR download and fetch the current genesis file for your network from the [recommended versions](/nodes/architecture/evm-execution) page, and overwrite your current genesis file with it.
4. No changes are needed to BeaconKit options.
5. Start the new `beacond` and `bera-reth` binaries.
diff --git a/nodes/staking-pools/overview.mdx b/nodes/staking-pools/overview.mdx
index a39f749..f8b8ede 100644
--- a/nodes/staking-pools/overview.mdx
+++ b/nodes/staking-pools/overview.mdx
@@ -54,7 +54,7 @@ When stakers interact with your staking pool, they deposit BERA and immediately
**Staking pool shares (stBERA) are not LSTs.** They cannot be registered with
- `BGTIncentiveFeeCollector` as an `LSTStakerVault` asset and cannot be deposited into the \$sWBERA
+ `IncentivesCollector` as an `LSTStakerVault` asset and cannot be deposited into the \$sWBERA
Staking Vault. Pool-level yield reaches stBERA holders through the pool's own `SmartOperator` and
`IncentiveCollector` — a separate path from the PoL Incentive Auction yield.
diff --git a/scripts/contracts/generate-pages.mjs b/scripts/contracts/generate-pages.mjs
index d8f5aff..acfcab7 100644
--- a/scripts/contracts/generate-pages.mjs
+++ b/scripts/contracts/generate-pages.mjs
@@ -7,6 +7,7 @@ const repoRoot = path.resolve(path.dirname(new URL(import.meta.url).pathname), "
const contracts = JSON.parse(fs.readFileSync(path.join(repoRoot, "data/contracts.json"), "utf8"));
const generatedSnippetDir = "snippets/contracts/generated";
const checkMode = process.argv.includes("--check");
+const missingValue = "🤓";
let changedCount = 0;
let wroteCount = 0;
let unchangedCount = 0;
@@ -36,7 +37,7 @@ function write(relPath, content) {
}
function berascanLink(address, network) {
- if (!address) return "N/A";
+ if (!address) return missingValue;
const host = network === "berachainBepolia" ? "https://testnet.berascan.com" : "https://berascan.com";
return `[\`${address}\`](${host}/address/${address})`;
}
@@ -49,34 +50,126 @@ function hasAnyDeployment(items, network) {
return items.some((item) => Boolean(addressFor(item, network)));
}
-function networkRow(item, network, includeAbi = false, boldName = false) {
+function linkFor(item, key, network) {
+ const value = item?.[key];
+ if (!value) return "";
+ if (typeof value === "string") return value;
+ return value[network] ?? "";
+}
+
+function linkCell(item, key, network, label) {
+ const href = linkFor(item, key, network);
+ return href ? `[${label}](${href})` : missingValue;
+}
+
+function resourcesCell(item, network, abiLabel = "ABI") {
+ const resources = [
+ ["abi", abiLabel],
+ ["source", "Source"],
+ ["reference", "Reference"]
+ ]
+ .map(([key, label]) => {
+ const href = linkFor(item, key, network);
+ return href ? `[${label}](${href})` : "";
+ })
+ .filter(Boolean);
+
+ return resources.length ? resources.join(" · ") : missingValue;
+}
+
+function berascanUrl(address, network) {
+ if (!address) return "";
+ const host = network === "berachainBepolia" ? "https://testnet.berascan.com" : "https://berascan.com";
+ return `${host}/address/${address}`;
+}
+
+function resourceLinks(item, network, abiLabel = "ABI") {
+ const address = addressFor(item, network);
+ const links = [
+ address ? `[Berascan](${berascanUrl(address, network)})` : "",
+ linkFor(item, "abi", network) ? `[${abiLabel}](${linkFor(item, "abi", network)})` : "",
+ linkFor(item, "source", network) ? `[Source](${linkFor(item, "source", network)})` : "",
+ linkFor(item, "reference", network) ? `[Reference](${linkFor(item, "reference", network)})` : ""
+ ].filter(Boolean);
+
+ return links.length ? links.join(" · ") : missingValue;
+}
+
+function codeBlock(value) {
+ return `\`\`\`text
+${value}
+\`\`\``;
+}
+
+function contractCard(item, network, abiLabel = "ABI") {
+ const address = addressFor(item, network);
+ if (!address) return "";
+ return `
+
+${codeBlock(address)}
+
+${resourceLinks(item, network, abiLabel)}
+
+`;
+}
+
+function renderCardCategory(title, items, network, abiLabel = "ABI") {
+ const cards = items.map((item) => contractCard(item, network, abiLabel)).filter(Boolean);
+ if (!cards.length) return "";
+ return `### ${title}
+
+
+${cards.join("\n")}
+`;
+}
+
+function contractCell(item, network, boldName = false) {
const address = berascanLink(addressFor(item, network), network);
const name = boldName ? `**${item.name}**` : item.name;
- if (includeAbi) {
- const abi = item.abi ? `[ABI](${item.abi})` : "N/A";
- return `| ${name} | ${address} | ${abi} |`;
- }
- return `| ${name} | ${address} |`;
+ return `${name}
${address}`;
+}
+
+function networkRow(item, network, options = {}) {
+ const {
+ includeAbi = false,
+ includeSource = false,
+ includeResources = false,
+ combineNameAddress = false,
+ boldName = false,
+ abiLabel = "ABI"
+ } = options;
+ const columns = combineNameAddress
+ ? [contractCell(item, network, boldName)]
+ : [boldName ? `**${item.name}**` : item.name, berascanLink(addressFor(item, network), network)];
+ if (includeResources) columns.push(resourcesCell(item, network, abiLabel));
+ if (includeAbi) columns.push(linkCell(item, "abi", network, abiLabel));
+ if (includeSource) columns.push(linkCell(item, "source", network, "Source"));
+ return `| ${columns.join(" | ")} |`;
}
-function renderAddressCategory(title, items, network) {
+function renderAddressCategory(title, items, network, options = {}) {
if (!hasAnyDeployment(items, network)) return "";
- const rows = items.map((item) => networkRow(item, network)).join("\n");
+ const rows = items.map((item) => networkRow(item, network, options)).join("\n");
+ const header = options.combineNameAddress ? ["Contract"] : ["Name", "Address"];
+ if (options.includeResources) header.push("Resources");
+ if (options.includeAbi) header.push("ABI");
+ if (options.includeSource) header.push("Source");
return `### ${title}
-| Name | Address |
-|------|---------|
+| ${header.join(" | ")} |
+| ${header.map(() => "---").join(" | ")} |
${rows}`;
}
function renderAbiCategory(title, items, network, boldName = false) {
if (!hasAnyDeployment(items, network)) return "";
- const rows = items.map((item) => networkRow(item, network, true, boldName)).join("\n");
+ void boldName;
+ const cards = items.map((item) => contractCard(item, network)).filter(Boolean);
return `### ${title}
-| Name | Address | ABI |
-| --- | ------- | --- |
-${rows}`;
+
+${cards.join("\n")}
+`;
}
function renderGettingStartedSnippet() {
@@ -84,19 +177,29 @@ function renderGettingStartedSnippet() {
const tokenItems = Object.values(contracts.tokens);
const governanceItems = Object.values(contracts.governance ?? {});
const otherItems = Object.values(contracts.other);
+ const stakingPoolItems = Object.values(contracts.stakingPools);
+ const linkedColumns = { combineNameAddress: true, includeResources: true };
const mainSections = [
- renderAddressCategory("Proof of Liquidity", polItems, "berachainMainnet"),
- renderAddressCategory("Tokens", tokenItems, "berachainMainnet"),
- renderAddressCategory("Governance", governanceItems, "berachainMainnet"),
- renderAddressCategory("Other", otherItems, "berachainMainnet")
+ renderAddressCategory("Proof of Liquidity", polItems, "berachainMainnet", linkedColumns),
+ renderAddressCategory("Tokens", tokenItems, "berachainMainnet", linkedColumns),
+ renderAddressCategory("Governance", governanceItems, "berachainMainnet", linkedColumns),
+ renderAddressCategory("Staking pools", stakingPoolItems, "berachainMainnet", {
+ ...linkedColumns,
+ abiLabel: "ABI JSON"
+ }),
+ renderAddressCategory("Other", otherItems, "berachainMainnet", linkedColumns)
]
.filter(Boolean)
.join("\n\n");
const bepSections = [
- renderAddressCategory("Proof of Liquidity", polItems, "berachainBepolia"),
- renderAddressCategory("Tokens", tokenItems, "berachainBepolia"),
- renderAddressCategory("Governance", governanceItems, "berachainBepolia"),
- renderAddressCategory("Other", otherItems, "berachainBepolia")
+ renderAddressCategory("Proof of Liquidity", polItems, "berachainBepolia", linkedColumns),
+ renderAddressCategory("Tokens", tokenItems, "berachainBepolia", linkedColumns),
+ renderAddressCategory("Governance", governanceItems, "berachainBepolia", linkedColumns),
+ renderAddressCategory("Staking pools", stakingPoolItems, "berachainBepolia", {
+ ...linkedColumns,
+ abiLabel: "ABI JSON"
+ }),
+ renderAddressCategory("Other", otherItems, "berachainBepolia", linkedColumns)
]
.filter(Boolean)
.join("\n\n");
@@ -105,17 +208,19 @@ function renderGettingStartedSnippet() {
.map((item) => `| ${item.name} | \`${item.address.ethereumMainnet}\` | \`${item.address.berachainMainnet}\` |`)
.join("\n");
- return `## Mainnet contracts
-
-${mainSections}${bepSections ? `\n\n## Bepolia testnet contracts\n\n${bepSections}` : ""}
-
-### NFT contracts
+ const nftSection = `### NFT contracts
Berachain NFT contract addresses on both Ethereum (via LayerZero adapters) and Berachain mainnet.
| Collection | Ethereum Adapter | Berachain Address |
|------------|------------------|-------------------|
-${nftRows}
+${nftRows}`;
+
+ return `## Mainnet contracts
+
+${mainSections}
+
+${nftSection}${bepSections ? `\n\n## Bepolia testnet contracts\n\n${bepSections}` : ""}
`;
}
@@ -124,16 +229,22 @@ function renderBexSnippet() {
const mainSection = hasAnyDeployment(items, "berachainMainnet")
? `## Mainnet contracts
-| Name | Address | ABI |
-| ---- | ------- | --- |
-${items.map((item) => networkRow(item, "berachainMainnet", true)).join("\n")}`
+
+${items
+ .map((item) => contractCard(item, "berachainMainnet"))
+ .filter(Boolean)
+ .join("\n")}
+`
: "";
const bepSection = hasAnyDeployment(items, "berachainBepolia")
? `## Bepolia testnet contracts
-| Name | Address | ABI |
-| ---- | ------- | --- |
-${items.map((item) => networkRow(item, "berachainBepolia", true)).join("\n")}`
+
+${items
+ .map((item) => contractCard(item, "berachainBepolia"))
+ .filter(Boolean)
+ .join("\n")}
+`
: "";
return [mainSection, bepSection].filter(Boolean).join("\n\n");
@@ -188,20 +299,22 @@ function renderStakingPoolsSnippet() {
const mainSection = hasAnyDeployment(items, "berachainMainnet")
? `#### Mainnet
-| Name | Address | ABI |
-|------|---------|-----|
+
${items
- .map((item) => `| **${item.name}** | ${berascanLink(item.address.berachainMainnet, "berachainMainnet")} | [ABI JSON](${item.abi}) |`)
- .join("\n")}`
+ .map((item) => contractCard(item, "berachainMainnet", "ABI JSON"))
+ .filter(Boolean)
+ .join("\n")}
+`
: "";
const bepSection = hasAnyDeployment(items, "berachainBepolia")
? `#### Bepolia
-| Name | Address | ABI |
-|------|---------|-----|
+
${items
- .map((item) => `| **${item.name}** | ${berascanLink(item.address.berachainBepolia, "berachainBepolia")} | [ABI JSON](${item.abi}) |`)
- .join("\n")}`
+ .map((item) => contractCard(item, "berachainBepolia", "ABI JSON"))
+ .filter(Boolean)
+ .join("\n")}
+`
: "";
return [mainSection, bepSection].filter(Boolean).join("\n\n");
@@ -214,26 +327,18 @@ description: "Berachain core and staking-pool contract addresses by network."
---
import CoreContractsTable from "/snippets/contracts/generated/core-contracts-table.mdx";
-import StakingPoolSingletonsTable from "/snippets/contracts/generated/staking-pools-singletons-table.mdx";
For **BEX** (DEX) addresses, see [BEX deployed contracts](/build/bex/deployed-contracts). For **Bend** (lending) addresses, see [Bend deployed contracts](/build/bend/deployed-contracts).
All contracts are verified at the [block explorer](https://berascan.com).
* ABI files: [berachain/abis](https://github.com/berachain/abis).
* Core protocol: [berachain/contracts](https://github.com/berachain/contracts).
-* Staking pools: [berachain/contracts-staking-pools](https://github.com/berachain/contracts-staking-pools).
All audit reports are publicly available on [Github](https://github.com/berachain/security-audits).
-
-## Staking pool contracts
-
-Shared singleton addresses for staking pools are listed below. For per-pool proxies, behavior, and links to the guides repo, see [Staking pool contracts](/nodes/staking-pools/contracts).
-
-
`;
}
@@ -257,11 +362,6 @@ For more information, see the [Balancer disclosure](https://forum.balancer.fi/t/
The following is a list of contract addresses for interacting with Berachain BEX.
-
- A full list of contract ABIs can be found at
- [github.com/berachain/doc-abis](https://github.com/berachain/doc-abis).
-
-
`;
}
diff --git a/snippets/contracts/generated/bend-contracts-table.mdx b/snippets/contracts/generated/bend-contracts-table.mdx
index 680ff89..366e8f5 100644
--- a/snippets/contracts/generated/bend-contracts-table.mdx
+++ b/snippets/contracts/generated/bend-contracts-table.mdx
@@ -2,20 +2,89 @@
### Morpho
-| Name | Address | ABI |
-| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --- |
-| **Morpho (Vault)** | [`0x24147243f9c08d835C218Cda1e135f8dFD0517D0`](https://berascan.com/address/0x24147243f9c08d835C218Cda1e135f8dFD0517D0) | N/A |
-| **Adaptive Curve IRM** | [`0xcf247Df3A2322Dea0D408f011c194906E77a6f62`](https://berascan.com/address/0xcf247Df3A2322Dea0D408f011c194906E77a6f62) | N/A |
-| **Bundler3** | [`0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae`](https://berascan.com/address/0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae) | N/A |
-| **General Adapter 1** | [`0xd2B9667F5214115E27937C410cAeE83E3a901Df7`](https://berascan.com/address/0xd2B9667F5214115E27937C410cAeE83E3a901Df7) | N/A |
-| **Meta Morpho V1.1** | N/A | N/A |
-| **Meta Morpho Factory V1.1** | [`0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616`](https://berascan.com/address/0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616) | N/A |
-| **Meta Fee Partitioner** | [`0x80108Ee81A92091Db6B8B2326B1875ce9388f461`](https://berascan.com/address/0x80108Ee81A92091Db6B8B2326B1875ce9388f461) | N/A |
-| **Public Allocator** | [`0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7`](https://berascan.com/address/0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7) | N/A |
-| **Morpho Chainlink Oracle V2** | N/A | N/A |
-| **Morpho Chainlink Oracle V2 Factory** | [`0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E`](https://berascan.com/address/0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E) | N/A |
-| **Universal Reward Distributer (URD)** | N/A | N/A |
-| **Universal Reward Distributer (URD) Factory** | [`0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802`](https://berascan.com/address/0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802) | N/A |
+
+
+
+```text
+0x24147243f9c08d835C218Cda1e135f8dFD0517D0
+```
+
+[Berascan](https://berascan.com/address/0x24147243f9c08d835C218Cda1e135f8dFD0517D0)
+
+
+
+
+```text
+0xcf247Df3A2322Dea0D408f011c194906E77a6f62
+```
+
+[Berascan](https://berascan.com/address/0xcf247Df3A2322Dea0D408f011c194906E77a6f62)
+
+
+
+
+```text
+0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae
+```
+
+[Berascan](https://berascan.com/address/0xF920140A65D0f412f2AB3e76C4fEAB5Eef0657ae)
+
+
+
+
+```text
+0xd2B9667F5214115E27937C410cAeE83E3a901Df7
+```
+
+[Berascan](https://berascan.com/address/0xd2B9667F5214115E27937C410cAeE83E3a901Df7)
+
+
+
+
+```text
+0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616
+```
+
+[Berascan](https://berascan.com/address/0x5EDd48C6ACBd565Eeb31702FD9fa9Cbc86fbE616)
+
+
+
+
+```text
+0x80108Ee81A92091Db6B8B2326B1875ce9388f461
+```
+
+[Berascan](https://berascan.com/address/0x80108Ee81A92091Db6B8B2326B1875ce9388f461)
+
+
+
+
+```text
+0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7
+```
+
+[Berascan](https://berascan.com/address/0xB62F34Ab315eaDeAc698e8EaEB6Fc2650951BFe7)
+
+
+
+
+```text
+0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E
+```
+
+[Berascan](https://berascan.com/address/0xAf2FDC54f7bc9d6e8C2D2760E908f4e1beB04d9E)
+
+
+
+
+```text
+0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802
+```
+
+[Berascan](https://berascan.com/address/0x46fE2bc33b661E01A8946BbC3Bf43F2B8382d802)
+
+
+
More vaults may be deployed, please check
@@ -24,6 +93,14 @@
### Vaults
-| Name | Address | ABI |
-| ------------------- | ----------------------------------------------------------------------------------------------------------------------- | --- |
-| **Re7 Honey Vault** | [`0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1`](https://berascan.com/address/0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1) | N/A |
+
+
+
+```text
+0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1
+```
+
+[Berascan](https://berascan.com/address/0x30BbA9CD9Eb8c95824aa42Faa1Bb397b07545bc1)
+
+
+
diff --git a/snippets/contracts/generated/bex-contracts-table.mdx b/snippets/contracts/generated/bex-contracts-table.mdx
index ced3970..b046272 100644
--- a/snippets/contracts/generated/bex-contracts-table.mdx
+++ b/snippets/contracts/generated/bex-contracts-table.mdx
@@ -1,33 +1,225 @@
## Mainnet contracts
-| Name | Address | ABI |
-| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
-| Vault | [`0x4Be03f781C497A489E3cB0287833452cA9B9E80B`](https://berascan.com/address/0x4Be03f781C497A489E3cB0287833452cA9B9E80B) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IVault.abi.json) |
-| ProtocolFeesCollector | [`0xB8Cf46Cf1b1476E707619913a70B2085d26f1707`](https://berascan.com/address/0xB8Cf46Cf1b1476E707619913a70B2085d26f1707) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesCollector.abi.json) |
-| BalancerHelpers | [`0x5083737EC75a728c265BE578C9d0d5333a2c5951`](https://berascan.com/address/0x5083737EC75a728c265BE578C9d0d5333a2c5951) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerHelpers.abi.json) |
-| PoolCreationHelper | [`0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2`](https://berascan.com/address/0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IPoolCreationHelper.abi.json) |
-| ProtocolFeesWithdrawer | [`0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7`](https://berascan.com/address/0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesWithdrawer.abi.json) |
-| ComposableStablePoolFactory | [`0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1`](https://berascan.com/address/0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IComposableStablePoolFactoryCreateV6.abi.json) |
-| BatchRelayerLibrary | [`0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf`](https://berascan.com/address/0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf) | N/A |
-| BatchRelayerQueryLibrary | [`0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d`](https://berascan.com/address/0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d) | N/A |
-| BalancerRelayer | [`0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7`](https://berascan.com/address/0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerRelayer.abi.json) |
-| WeightedPoolFactory | [`0xa966fA8F2d5B087FFFA499C0C1240589371Af409`](https://berascan.com/address/0xa966fA8F2d5B087FFFA499C0C1240589371Af409) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IWeightedPoolFactory.abi.json) |
-| ProtocolFeePercentagesProvider | [`0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf`](https://berascan.com/address/0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeePercentagesProvider.abi.json) |
-| BalancerQueries | [`0x3C612e132624f4Bd500eE1495F54565F0bcc9b59`](https://berascan.com/address/0x3C612e132624f4Bd500eE1495F54565F0bcc9b59) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerQueries.abi.json) |
+
+
+
+```text
+0x4Be03f781C497A489E3cB0287833452cA9B9E80B
+```
+
+[Berascan](https://berascan.com/address/0x4Be03f781C497A489E3cB0287833452cA9B9E80B)
+
+
+
+
+```text
+0xB8Cf46Cf1b1476E707619913a70B2085d26f1707
+```
+
+[Berascan](https://berascan.com/address/0xB8Cf46Cf1b1476E707619913a70B2085d26f1707)
+
+
+
+
+```text
+0x5083737EC75a728c265BE578C9d0d5333a2c5951
+```
+
+[Berascan](https://berascan.com/address/0x5083737EC75a728c265BE578C9d0d5333a2c5951)
+
+
+
+
+```text
+0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2
+```
+
+[Berascan](https://berascan.com/address/0x55dccE8165C88aAd4403a15A9cE3A8E244657dD2)
+
+
+
+
+```text
+0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7
+```
+
+[Berascan](https://berascan.com/address/0x1635F0E1B3e8A6713d03aE155ba79458Ba3240C7)
+
+
+
+
+```text
+0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1
+```
+
+[Berascan](https://berascan.com/address/0xDfA30BDa0375d4763711AB0CC8D91B20bfCC87E1)
+
+
+
+
+```text
+0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf
+```
+
+[Berascan](https://berascan.com/address/0xCB4AE3030bA06F7EEE54A7B96AfcA7457f9525cf)
+
+
+
+
+```text
+0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d
+```
+
+[Berascan](https://berascan.com/address/0x4151083172b2CEFB83A33fD7FC9F6cBabb3Fd08d)
+
+
+
+
+```text
+0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7
+```
+
+[Berascan](https://berascan.com/address/0x6044f181aB5E9C05A4ed9Ce295f3B178d2492EE7)
+
+
+
+
+```text
+0xa966fA8F2d5B087FFFA499C0C1240589371Af409
+```
+
+[Berascan](https://berascan.com/address/0xa966fA8F2d5B087FFFA499C0C1240589371Af409)
+
+
+
+
+```text
+0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf
+```
+
+[Berascan](https://berascan.com/address/0x33C88ffdEe710ed3908C791137Bd1D4421AabBBf)
+
+
+
+
+```text
+0x3C612e132624f4Bd500eE1495F54565F0bcc9b59
+```
+
+[Berascan](https://berascan.com/address/0x3C612e132624f4Bd500eE1495F54565F0bcc9b59)
+
+
+
## Bepolia testnet contracts
-| Name | Address | ABI |
-| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
-| Vault | [`0x708cA656b68A6b7384a488A36aD33505a77241FE`](https://testnet.berascan.com/address/0x708cA656b68A6b7384a488A36aD33505a77241FE) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IVault.abi.json) |
-| ProtocolFeesCollector | [`0x05A607aCf3548E84DD1E44c3706F850c849058Da`](https://testnet.berascan.com/address/0x05A607aCf3548E84DD1E44c3706F850c849058Da) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesCollector.abi.json) |
-| BalancerHelpers | [`0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f`](https://testnet.berascan.com/address/0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerHelpers.abi.json) |
-| PoolCreationHelper | [`0x0dC9964F6CA33d9EF38DEB4925234766127C6B36`](https://testnet.berascan.com/address/0x0dC9964F6CA33d9EF38DEB4925234766127C6B36) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IPoolCreationHelper.abi.json) |
-| ProtocolFeesWithdrawer | [`0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06`](https://testnet.berascan.com/address/0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeesWithdrawer.abi.json) |
-| ComposableStablePoolFactory | [`0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1`](https://testnet.berascan.com/address/0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IComposableStablePoolFactoryCreateV6.abi.json) |
-| BatchRelayerLibrary | [`0xfD772657FC8c4Ed3884AfF151b680883814052FA`](https://testnet.berascan.com/address/0xfD772657FC8c4Ed3884AfF151b680883814052FA) | N/A |
-| BatchRelayerQueryLibrary | [`0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601`](https://testnet.berascan.com/address/0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601) | N/A |
-| BalancerRelayer | [`0x343215E156Ff586711a5B8C49Fe3099BAF22624C`](https://testnet.berascan.com/address/0x343215E156Ff586711a5B8C49Fe3099BAF22624C) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerRelayer.abi.json) |
-| WeightedPoolFactory | [`0xf1d23276C7b271B2aC595C78977b2312E9954D57`](https://testnet.berascan.com/address/0xf1d23276C7b271B2aC595C78977b2312E9954D57) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IWeightedPoolFactory.abi.json) |
-| ProtocolFeePercentagesProvider | [`0x8119E412E00fe3c857739E95dB147817Bf615dB8`](https://testnet.berascan.com/address/0x8119E412E00fe3c857739E95dB147817Bf615dB8) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IProtocolFeePercentagesProvider.abi.json) |
-| BalancerQueries | [`0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92`](https://testnet.berascan.com/address/0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92) | [ABI](https://github.com/berachain/doc-abis/blob/main/bex/IBalancerQueries.abi.json) |
+
+
+
+```text
+0x708cA656b68A6b7384a488A36aD33505a77241FE
+```
+
+[Berascan](https://testnet.berascan.com/address/0x708cA656b68A6b7384a488A36aD33505a77241FE)
+
+
+
+
+```text
+0x05A607aCf3548E84DD1E44c3706F850c849058Da
+```
+
+[Berascan](https://testnet.berascan.com/address/0x05A607aCf3548E84DD1E44c3706F850c849058Da)
+
+
+
+
+```text
+0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f
+```
+
+[Berascan](https://testnet.berascan.com/address/0xC7c981ADcDC5d48fed0CD52807fb2bAB22676C8f)
+
+
+
+
+```text
+0x0dC9964F6CA33d9EF38DEB4925234766127C6B36
+```
+
+[Berascan](https://testnet.berascan.com/address/0x0dC9964F6CA33d9EF38DEB4925234766127C6B36)
+
+
+
+
+```text
+0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06
+```
+
+[Berascan](https://testnet.berascan.com/address/0x8c2D77f0CfcD4Af9cF41494EfE500FE324012c06)
+
+
+
+
+```text
+0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1
+```
+
+[Berascan](https://testnet.berascan.com/address/0xB60DbBaCEaeC23486a64d12089F467ef949f1bb1)
+
+
+
+
+```text
+0xfD772657FC8c4Ed3884AfF151b680883814052FA
+```
+
+[Berascan](https://testnet.berascan.com/address/0xfD772657FC8c4Ed3884AfF151b680883814052FA)
+
+
+
+
+```text
+0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601
+```
+
+[Berascan](https://testnet.berascan.com/address/0x263a1C5B2c5851beA2177eb8D6caefdfF2A25601)
+
+
+
+
+```text
+0x343215E156Ff586711a5B8C49Fe3099BAF22624C
+```
+
+[Berascan](https://testnet.berascan.com/address/0x343215E156Ff586711a5B8C49Fe3099BAF22624C)
+
+
+
+
+```text
+0xf1d23276C7b271B2aC595C78977b2312E9954D57
+```
+
+[Berascan](https://testnet.berascan.com/address/0xf1d23276C7b271B2aC595C78977b2312E9954D57)
+
+
+
+
+```text
+0x8119E412E00fe3c857739E95dB147817Bf615dB8
+```
+
+[Berascan](https://testnet.berascan.com/address/0x8119E412E00fe3c857739E95dB147817Bf615dB8)
+
+
+
+
+```text
+0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92
+```
+
+[Berascan](https://testnet.berascan.com/address/0xE3723383a0EA73D5c0dE424BAA97F97f86f6cF92)
+
+
+
diff --git a/snippets/contracts/generated/core-contracts-table.mdx b/snippets/contracts/generated/core-contracts-table.mdx
index ef451e8..8227ca5 100644
--- a/snippets/contracts/generated/core-contracts-table.mdx
+++ b/snippets/contracts/generated/core-contracts-table.mdx
@@ -2,85 +2,51 @@
### Proof of Liquidity
-| Name | Address |
-| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
-| BeraChef | [`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) |
-| BlockRewardController | [`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) |
-| Distributor | [`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) |
-| DedicatedEmissionStreamManager | [`0x813dCdBa9197947792985c866cE98D6739cA821A`](https://berascan.com/address/0x813dCdBa9197947792985c866cE98D6739cA821A) |
-| FeeCollector | [`0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://berascan.com/address/0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) |
-| BGTIncentiveFeeCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) |
-| RewardVaultFactory | [`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) |
-| RewardVaultHelper | [`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) |
-| LSTStakerVaultFactory | [`0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500`](https://berascan.com/address/0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500) |
-| HoneyFactory | [`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) |
+| Contract | Resources |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| BeraChef
[`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BeraChef.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/BeraChef.sol) |
+| BlockRewardController
[`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/BlockRewardController.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/BlockRewardController.sol) |
+| Distributor
[`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/Distributor.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/Distributor.sol) |
+| DedicatedEmissionStreamManager
[`0x813dCdBa9197947792985c866cE98D6739cA821A`](https://berascan.com/address/0x813dCdBa9197947792985c866cE98D6739cA821A) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/DedicatedEmissionStreamManager.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/DedicatedEmissionStreamManager.sol) |
+| FeeCollector
[`0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://berascan.com/address/0x7Bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/FeeCollector.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/FeeCollector.sol) |
+| IncentivesCollector
[`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/IncentivesCollector.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/IncentivesCollector.sol) |
+| RewardVaultFactory
[`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultFactory.sol) |
+| RewardVaultHelper
[`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/rewards/RewardVaultHelper.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/rewards/RewardVaultHelper.sol) |
+| LSTStakerVaultFactory
[`0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500`](https://berascan.com/address/0xc41bbD6695AB6bdc6D04701b15f4CE5EbA2e2500) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/lst/LSTStakerVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/lst/LSTStakerVaultFactory.sol) |
+| HoneyFactory
[`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/HoneyFactory.json) · [Source](https://github.com/berachain/contracts/blob/main/src/honey/HoneyFactory.sol) |
### Tokens
-| Name | Address |
-| --------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
-| BGT Token | [`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) |
-| WBERA | [`0x6969696969696969696969696969696969696969`](https://berascan.com/address/0x6969696969696969696969696969696969696969) |
-| HONEY | [`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) |
-| WBERA Staker Vault (sWBERA) | [`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) |
+| Contract | Resources |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| BGT Token
[`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BGT.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/BGT.sol) |
+| WBERA
[`0x6969696969696969696969696969696969696969`](https://berascan.com/address/0x6969696969696969696969696969696969696969) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/WBERA.json) · [Source](https://github.com/berachain/contracts/blob/main/src/WBERA.sol) |
+| HONEY
[`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/honey/Honey.json) · [Source](https://github.com/berachain/contracts/blob/main/src/honey/Honey.sol) |
+| WBERA Staker Vault (sWBERA)
[`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/WBERAStakerVault.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/WBERAStakerVault.sol) |
### Governance
-| Name | Address |
-| ---------- | ----------------------------------------------------------------------------------------------------------------------- |
-| Governance | [`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) |
-| Timelock | [`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) |
+| Contract | Resources |
+| --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Governance
[`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/BerachainGovernance.json) · [Source](https://github.com/berachain/contracts/blob/main/src/gov/BerachainGovernance.sol) |
+| Timelock
[`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/gov/TimeLock.json) · [Source](https://github.com/berachain/contracts/blob/main/src/gov/TimeLock.sol) |
-### Other
-
-| Name | Address |
-| ------------- | ----------------------------------------------------------------------------------------------------------------------- |
-| BeaconDeposit | [`0x4242424242424242424242424242424242424242`](https://berascan.com/address/0x4242424242424242424242424242424242424242) |
-| Create2 | [`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) |
-| Multicall3 | [`0xcA11bde05977b3631167028862bE2a173976CA11`](https://berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) |
-| Permit2 | [`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) |
-
-## Bepolia testnet contracts
-
-### Proof of Liquidity
-
-| Name | Address |
-| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
-| BeraChef | [`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://testnet.berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) |
-| BlockRewardController | [`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://testnet.berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) |
-| Distributor | [`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://testnet.berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) |
-| DedicatedEmissionStreamManager | [`0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd`](https://testnet.berascan.com/address/0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd) |
-| FeeCollector | [`0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://testnet.berascan.com/address/0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) |
-| BGTIncentiveFeeCollector | [`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://testnet.berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) |
-| RewardVaultFactory | [`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://testnet.berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) |
-| RewardVaultHelper | [`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://testnet.berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) |
-| LSTStakerVaultFactory | [`0xAf10B532cCC25B26a8e28913D5C4056a77e7a178`](https://testnet.berascan.com/address/0xAf10B532cCC25B26a8e28913D5C4056a77e7a178) |
-| HoneyFactory | [`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://testnet.berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) |
+### Staking pools
-### Tokens
-
-| Name | Address |
-| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| BGT Token | [`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://testnet.berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) |
-| WBERA | [`0x6969696969696969696969696969696969696969`](https://testnet.berascan.com/address/0x6969696969696969696969696969696969696969) |
-| HONEY | [`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://testnet.berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) |
-| WBERA Staker Vault (sWBERA) | [`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://testnet.berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) |
-
-### Governance
-
-| Name | Address |
-| ---------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| Governance | [`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://testnet.berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) |
-| Timelock | [`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://testnet.berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) |
+| Contract | Resources |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| StakingPoolContractsFactory
[`0xb79b43dBA821Cb67751276Ce050fF4111445fB99`](https://berascan.com/address/0xb79b43dBA821Cb67751276Ce050fF4111445fB99) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json) |
+| DelegationHandlerFactory
[`0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0`](https://berascan.com/address/0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json) |
+| WithdrawalVault
[`0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4`](https://berascan.com/address/0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json) |
### Other
-| Name | Address |
-| ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| BeaconDeposit | [`0x4242424242424242424242424242424242424242`](https://testnet.berascan.com/address/0x4242424242424242424242424242424242424242) |
-| Create2 | [`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://testnet.berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) |
-| Multicall3 | [`0xcA11bde05977b3631167028862bE2a173976CA11`](https://testnet.berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) |
-| Permit2 | [`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://testnet.berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) |
+| Contract | Resources |
+| ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| BeaconDeposit
[`0x4242424242424242424242424242424242424242`](https://berascan.com/address/0x4242424242424242424242424242424242424242) | [ABI](https://github.com/berachain/abis/blob/main/mainnet/contracts/pol/BeaconDeposit.json) · [Source](https://github.com/berachain/contracts/blob/main/src/pol/BeaconDeposit.sol) |
+| Create2
[`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) | [Reference](https://github.com/Arachnid/deterministic-deployment-proxy) |
+| Multicall3
[`0xcA11bde05977b3631167028862bE2a173976CA11`](https://berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) | [ABI](https://github.com/mds1/multicall/releases/download/v3.1.0/Multicall3.json) · [Reference](https://github.com/mds1/multicall) |
+| Permit2
[`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | [ABI](https://github.com/Uniswap/permit2-sdk/blob/main/abis/Permit2.json) · [Reference](https://docs.uniswap.org/contracts/permit2/overview) |
### NFT contracts
@@ -94,3 +60,53 @@ Berachain NFT contract addresses on both Ethereum (via LayerZero adapters) and B
| Baby Bears | `0xc48C54e92d135B356DD0CbF50F803A8c8d38968b` | `0xDDeAf391c4be2d01ca52aBb8C159a06820ef078C` |
| Band Bears | `0x392Faa1b0EF108ded69897Ba5382E909C39Fc09e` | `0x7711B2Eb2451259dbF211e30157ceB7CFeb79a19` |
| Bit Bears | `0x3EB12398753eEd7E8747321c37C85De30d8E2e94` | `0x72D876D9cdf4001b836f8E47254d0551EdA2eebB` |
+
+## Bepolia testnet contracts
+
+### Proof of Liquidity
+
+| Contract | Resources |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| BeraChef
[`0xdf960E8F3F19C481dDE769edEDD439ea1a63426a`](https://testnet.berascan.com/address/0xdf960E8F3F19C481dDE769edEDD439ea1a63426a) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BeraChef.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BeraChef.sol) |
+| BlockRewardController
[`0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e`](https://testnet.berascan.com/address/0x1AE7dD7AE06F6C58B4524d9c1f816094B1bcCD8e) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/BlockRewardController.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/BlockRewardController.sol) |
+| Distributor
[`0xD2f19a79b026Fb636A7c300bF5947df113940761`](https://testnet.berascan.com/address/0xD2f19a79b026Fb636A7c300bF5947df113940761) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/Distributor.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/Distributor.sol) |
+| DedicatedEmissionStreamManager
[`0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd`](https://testnet.berascan.com/address/0xfe83d31669b52B7a619119Bc71805fD29eeEB9Dd) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/DedicatedEmissionStreamManager.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/DedicatedEmissionStreamManager.sol) |
+| FeeCollector
[`0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650`](https://testnet.berascan.com/address/0x7bb8DdaC7FbE3FFC0f4B3c73C4F158B06CF82650) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/FeeCollector.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/FeeCollector.sol) |
+| IncentivesCollector
[`0x1984Baf659607Cc5f206c55BB3B00eb3E180190B`](https://testnet.berascan.com/address/0x1984Baf659607Cc5f206c55BB3B00eb3E180190B) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/IncentivesCollector.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/IncentivesCollector.sol) |
+| RewardVaultFactory
[`0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8`](https://testnet.berascan.com/address/0x94Ad6Ac84f6C6FbA8b8CCbD71d9f4f101def52a8) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultFactory.sol) |
+| RewardVaultHelper
[`0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2`](https://testnet.berascan.com/address/0xEe233a69A36Db7fC10E03e921D90DEC52Cdce6e2) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/rewards/RewardVaultHelper.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/rewards/RewardVaultHelper.sol) |
+| LSTStakerVaultFactory
[`0xAf10B532cCC25B26a8e28913D5C4056a77e7a178`](https://testnet.berascan.com/address/0xAf10B532cCC25B26a8e28913D5C4056a77e7a178) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/lst/LSTStakerVaultFactory.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/lst/LSTStakerVaultFactory.sol) |
+| HoneyFactory
[`0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401`](https://testnet.berascan.com/address/0xA4aFef880F5cE1f63c9fb48F661E27F8B4216401) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/HoneyFactory.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/honey/HoneyFactory.sol) |
+
+### Tokens
+
+| Contract | Resources |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| BGT Token
[`0x656b95E550C07a9ffe548bd4085c72418Ceb1dba`](https://testnet.berascan.com/address/0x656b95E550C07a9ffe548bd4085c72418Ceb1dba) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BGT.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/BGT.sol) |
+| WBERA
[`0x6969696969696969696969696969696969696969`](https://testnet.berascan.com/address/0x6969696969696969696969696969696969696969) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/WBERA.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/WBERA.sol) |
+| HONEY
[`0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce`](https://testnet.berascan.com/address/0xFCBD14DC51f0A4d49d5E53C2E0950e0bC26d0Dce) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/honey/Honey.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/honey/Honey.sol) |
+| WBERA Staker Vault (sWBERA)
[`0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a`](https://testnet.berascan.com/address/0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/WBERAStakerVault.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/WBERAStakerVault.sol) |
+
+### Governance
+
+| Contract | Resources |
+| ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Governance
[`0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5`](https://testnet.berascan.com/address/0x4f4A5c2194B8e856b7a05B348F6ba3978FB6f6D5) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/BerachainGovernance.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/gov/BerachainGovernance.sol) |
+| Timelock
[`0xb5f2000b5744f207c931526cAE2134cAa8b6862a`](https://testnet.berascan.com/address/0xb5f2000b5744f207c931526cAE2134cAa8b6862a) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/gov/TimeLock.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/gov/TimeLock.sol) |
+
+### Staking pools
+
+| Contract | Resources |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| StakingPoolContractsFactory
[`0x24b8223864d3936F56e5a24C4245ae7620471D4C`](https://testnet.berascan.com/address/0x24b8223864d3936F56e5a24C4245ae7620471D4C) | [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/StakingPoolContractsFactory.json) |
+| DelegationHandlerFactory
[`0x0aEf09EC97bAc354d31F180b401454cB76abc395`](https://testnet.berascan.com/address/0x0aEf09EC97bAc354d31F180b401454cB76abc395) | [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/delegation/DelegationHandlerFactory.json) |
+| WithdrawalVault
[`0xBBed2D94338cdE2926A8C0576432De32C05c66e9`](https://testnet.berascan.com/address/0xBBed2D94338cdE2926A8C0576432De32C05c66e9) | [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/WithdrawalVault.json) |
+
+### Other
+
+| Contract | Resources |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| BeaconDeposit
[`0x4242424242424242424242424242424242424242`](https://testnet.berascan.com/address/0x4242424242424242424242424242424242424242) | [ABI](https://github.com/berachain/abis/blob/main/bepolia/contracts/pol/BeaconDeposit.json) · [Source](https://github.com/berachain/contracts/blob/bepolia/src/pol/BeaconDeposit.sol) |
+| Create2
[`0x4e59b44847b379578588920cA78FbF26c0B4956C`](https://testnet.berascan.com/address/0x4e59b44847b379578588920cA78FbF26c0B4956C) | [Reference](https://github.com/Arachnid/deterministic-deployment-proxy) |
+| Multicall3
[`0xcA11bde05977b3631167028862bE2a173976CA11`](https://testnet.berascan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11) | [ABI](https://github.com/mds1/multicall/releases/download/v3.1.0/Multicall3.json) · [Reference](https://github.com/mds1/multicall) |
+| Permit2
[`0x000000000022D473030F116dDEE9F6B43aC78BA3`](https://testnet.berascan.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | [ABI](https://github.com/Uniswap/permit2-sdk/blob/main/abis/Permit2.json) · [Reference](https://docs.uniswap.org/contracts/permit2/overview) |
diff --git a/snippets/contracts/generated/staking-pools-singletons-table.mdx b/snippets/contracts/generated/staking-pools-singletons-table.mdx
index b84a86c..055ef98 100644
--- a/snippets/contracts/generated/staking-pools-singletons-table.mdx
+++ b/snippets/contracts/generated/staking-pools-singletons-table.mdx
@@ -1,15 +1,63 @@
#### Mainnet
-| Name | Address | ABI |
-| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
-| **StakingPoolContractsFactory** | [`0xb79b43dBA821Cb67751276Ce050fF4111445fB99`](https://berascan.com/address/0xb79b43dBA821Cb67751276Ce050fF4111445fB99) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json) |
-| **DelegationHandlerFactory** | [`0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0`](https://berascan.com/address/0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json) |
-| **WithdrawalVault** | [`0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4`](https://berascan.com/address/0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json) |
+
+
+
+```text
+0xb79b43dBA821Cb67751276Ce050fF4111445fB99
+```
+
+[Berascan](https://berascan.com/address/0xb79b43dBA821Cb67751276Ce050fF4111445fB99) · [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json)
+
+
+
+
+```text
+0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0
+```
+
+[Berascan](https://berascan.com/address/0xAd17932a5B1aaeEa73D277a6AE670623F176E0D0) · [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json)
+
+
+
+
+```text
+0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4
+```
+
+[Berascan](https://berascan.com/address/0xE858802Ed532C6DAD2D196AB5B1F2C15F9cb52b4) · [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json)
+
+
+
#### Bepolia
-| Name | Address | ABI |
-| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
-| **StakingPoolContractsFactory** | [`0x24b8223864d3936F56e5a24C4245ae7620471D4C`](https://testnet.berascan.com/address/0x24b8223864d3936F56e5a24C4245ae7620471D4C) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/StakingPoolContractsFactory.json) |
-| **DelegationHandlerFactory** | [`0x0aEf09EC97bAc354d31F180b401454cB76abc395`](https://testnet.berascan.com/address/0x0aEf09EC97bAc354d31F180b401454cB76abc395) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/delegation/DelegationHandlerFactory.json) |
-| **WithdrawalVault** | [`0xBBed2D94338cdE2926A8C0576432De32C05c66e9`](https://testnet.berascan.com/address/0xBBed2D94338cdE2926A8C0576432De32C05c66e9) | [ABI JSON](https://github.com/berachain/abis/blob/main/mainnet/contracts-staking-pools/WithdrawalVault.json) |
+
+
+
+```text
+0x24b8223864d3936F56e5a24C4245ae7620471D4C
+```
+
+[Berascan](https://testnet.berascan.com/address/0x24b8223864d3936F56e5a24C4245ae7620471D4C) · [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/StakingPoolContractsFactory.json)
+
+
+
+
+```text
+0x0aEf09EC97bAc354d31F180b401454cB76abc395
+```
+
+[Berascan](https://testnet.berascan.com/address/0x0aEf09EC97bAc354d31F180b401454cB76abc395) · [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/delegation/DelegationHandlerFactory.json)
+
+
+
+
+```text
+0xBBed2D94338cdE2926A8C0576432De32C05c66e9
+```
+
+[Berascan](https://testnet.berascan.com/address/0xBBed2D94338cdE2926A8C0576432De32C05c66e9) · [ABI JSON](https://github.com/berachain/abis/blob/main/bepolia/contracts-staking-pools/WithdrawalVault.json)
+
+
+
diff --git a/vale/config/vocabularies/Berachain/accept.txt b/vale/config/vocabularies/Berachain/accept.txt
index 95a7b9b..75cd178 100644
--- a/vale/config/vocabularies/Berachain/accept.txt
+++ b/vale/config/vocabularies/Berachain/accept.txt
@@ -28,7 +28,7 @@ BlockRewardController
RewardVaultFactory
BGTStaker
FeeCollector
-BGTIncentiveFeeCollector
+IncentivesCollector
Distributor
ProtocolFeesCollector
BalancerHelpers