Skip to content

iBGT Staking Pool

Abstract

The iBGT staking pool operates in a manner similar to the liquidity staking pool. The primary differences lie in the sources and types of rewards. All rewards originating from the natively staked BGT are passed through this staking pool. The APIs are kept consistent to simplify integration for developers.

Main Rewards

  1. $Honey: Derived from Berachain Dapp Fees.
  2. $Honey/$wBera Gauge Incentives: A portion of the rewards from the Berachain Gauge Incentives System, consolidated into a common token.

Key Features

  1. Seamless Integration: The API consistency with the liquidity staking pool makes it easy for developers to integrate into the iBGT staking pool.
  2. Comprehensive Reward Distribution: By passing through all rewards from natively staked BGT, the iBGT staking pool ensures that users receive their fair share of the network's incentives.
  3. Diverse Rewards: The combination of $wBera and consolidated gauge incentives provides a diverse set of rewards, enhancing the attractiveness of staking iBGT.

By offering these features, the iBGT staking pool ensures a user-friendly and rewarding staking experience, encouraging greater participation and support within the Berachain ecosystem.

Staking

ERC20 Approve

cast send [iBGT-Address] "approve(address,uint256)" "[iBGT-Vault-Address]" [Amount] --rpc-url [RPC-URL] --private-key [PRIVATE-KEY]

Stake iBGT

cast send [iBGT-Vault-Address] "stake(uint256)" [Amount] --rpc-url [RPC-URL] --private-key [PRIVATE-KEY]

By following these steps, users can easily stake their iBGT tokens using the consistent and straightforward APIs provided by the iBGT staking pool. ::::

Rewards

The iBGT staking pool will receive rewards in multiple tokens from various sources. It is important for developers to keep up to date with the iBGTVault:rewardTokens() list, which serves as the canonical list of all rewards that the iBGT staking pool is entitled to.

Checking Reward Tokens

To check the list of reward tokens via the CLI:

cast call [iBGT-Vault-Address] "rewardTokens()" --rpc-url [RPC-URL]

Claiming Rewards

Claiming rewards is straightforward. Users can harvest and distribute their rewards by calling the iBGT-Vault::getReward() method.

Claiming Rewards for msg.sender:
cast send [iBGT-Vault-Address] "getReward()" --rpc-url [RPC-URL] --private-key [PRIVATE-KEY]
Claiming Rewards for Another Account:
cast send [iBGT-Vault-Address] "getRewardForUser(address)" [USER-ADDRESS] --rpc-url [RPC-URL] --private-key [PRIVATE-KEY]

By following these steps, users can easily access and claim their earned rewards, ensuring they benefit from the multiple reward sources associated with the iBGT staking pool. This process enhances the overall user experience and encourages active participation.

Withdrawal

There are two ways to withdraw from the iBGT staking pool:

  1. Exit: This method will withdraw all the staked iBGT and rewards.

    • Note: Only callable by the msg.sender who staked the iBGT.
    cast send [iBGT-Vault-Address] "exit()" --rpc-url [RPC-URL] --private-key [PRIVATE-KEY]
  2. Withdraw: This method will only withdraw the staked iBGT. The amount to withdraw is passed as an argument.

    • Note: Only callable by the msg.sender who staked the iBGT.
    cast send [iBGT-Vault-Address] "withdraw(uint256)" [Amount] --rpc-url [RPC-URL] --private-key [PRIVATE-KEY]

These options provide flexibility for users, allowing them to either completely exit their position and claim all rewards or selectively withdraw their staked iBGT tokens while leaving their rewards intact. This approach caters to different user needs and strategies, enhancing the overall utility and user experience of the iBGT staking pool.