• © Goverland Inc. 2026
  • v1.0.1
  • Privacy Policy
  • Terms of Use
Beanstalk DAOBeanstalk DAOby0x47a473Eb2bDfe6599dac638FFFE0D427d8Ad68880x47a4…6888

BIP-45: Seed Gauge System

Voting ended over 1 year agoSucceeded

Note that due to the Snapshot character limit, the Snapshot version of BIP-45 that follows is significantly abridged and includes many references to the complete BIP-45 proposal on Arweave that should be read here:

https://arweave.net/qLCpLQtH1bexKoMznrZ4z77drrVd51crDvsURcK_7PU

Proposer

Safisynai

Proposer Wallet: 0x43a9da9bade357843fbe7e5ee3eedd910f9fac1e

Summary

  • Implement the Seed Gauge System;
    • Implement the ability to set a target number of Seasons for a new Deposit with an average number of Seeds to catch up to the average Grown Stalk per BDV of existing Deposits at the time of Deposit (i.e., a target Grown Stalk inflation rate);
    • Introduce the ability to set an optimal distribution of Deposited LP BDV amongst whitelisted LP tokens; and
    • Introduce the ability to change the distribution of Grown Stalk to various whitelisted assets each Season in attempt to return to ideal equilibrium:
      • Change the distribution of Grown Stalk between Deposited Beans and LP tokens based on the Bean to Max LP Ratio (i.e., the ratio of Grown Stalk issuance between 1 Bean and 1 BDV of the LP token with the highest Gauge Points (defined below) per BDV); and
      • Change the distribution of Grown Stalk between various whitelisted LP tokens based on their current and optimal distributions;
  • Initialize the Seed Gauge System;
    • Set the target number of Seasons for a new Deposit with an average number of Seeds to catch up to the average Grown Stalk per BDV to 4320 Seasons (~6 months);
    • Set the minimum Bean to Max LP Ratio to 1:2 (i.e., at most, 1 BDV of an LP token Deposit will receive twice as much Grown Stalk per Season as a 1 Bean Deposit);
    • Set the maximum Bean to Max LP Ratio to 1:1 (i.e., at most, a 1 Bean Deposit will receive as much Grown Stalk per Season as 1 BDV of an LP token Deposit with the highest Grown Stalk per BDV.);
    • Initialize the Bean to Max LP Ratio to 1:1.5 (i.e., a 1.5 Bean Deposit will receive as much Grown Stalk per Season as 1 BDV of an LP token Deposit with the highest Grown Stalk per BDV.);
    • Set the optimal target distribution of Deposited LP BDV to 100% BEANETH;
    • Initialize BEANETH's Gauge Points (which determine Grown Stalk issuance across various LP tokens) to 100; and
    • Implement a default Gauge Point function that increments or decrements the Gauge Points of a whitelisted LP token based on whether the current Deposited BDV is lower or higher than optimal;
  • Upgrade the case system (how Beanstalk evaluates its position and current state with respect to ideal equilibrium) to Cases V2:
    • Add a fourth axis on which Beanstalk evaluates itself, the Liquidity to Supply Ratio (L2SR) in addition to (1) price, (2) Pod Rate and (3) change in demand for Soil;
      • Include support for only factoring in a portion of liquidity in a whitelisted pool into the L2SR calculation (i.e., liquidity weight);
      • Set the liquidity weight for BEANETH to 100% (i.e., do not discount the liquidity);
    • Implement an excessively high Bean price case at P > 1.05;
    • Add support for changing the Maximum Temperature in response to the cases in a relative manner;
    • Add support for changing the Bean to Max LP Scalar (which determines the Bean to Max LP Ratio) in response to the cases in a relative and absolute manner;
    • Change the absolute Maximum Temperature changes for the P < 1 and increasing/steady demand for Soil cases; and
    • Initialize the relative Maximum Temperature changes and both the relative and absolute Bean to Max LP Scalar changes by case;
  • Implement the second step in a two step process to track Deposited BDV that has not migrated to Silo V3;
  • Support Unripe λ → λ Conversions in the Silo;
  • Remove BEAN3CRV from the Deposit and Minting Whitelists;
  • Remove the BEAN → BEAN3CRV Conversion from the Convert Whitelist;
  • Update Flood to occur in the whitelisted Well with the most liquidity;
  • Implement Germination, which introduces a 2 Season delay in receiving Earned Beans after Deposit; and
  • Increase the max gm reward during the first available block from 100 to 250 Beans.

Links

  • BIP-45 GitHub PR
  • GitHub Commit Hash: ac8e681c7daa7cb046c1e405b27e50e7e44c0504
  • Safe Transaction

Context and Problem

See the full Arweave upload of BIP-45 to read the Context and Problem sections, which are very helpful for understanding the Seed Gauge System outlined in the remainder of the BIP.

Proposed Solution

Seed Gauge System

See the full Arweave upload of BIP-45 to read the Seed Gauge System section.

Cases V2

See the full Arweave upload of BIP-45 to read the Cases V2, Liquidity to Supply Ratio, Locked Beans and P > Q sections.

Maximum Temperature and Bean To Max LP Scalar Changes

Cases V2 updates the Maximum Temperature ($T$) and the Bean to Max LP Scalar ($L$) for the next Season $s + 1$ like so (where $m_T$ and $b_T$ are the relative and absolute changes to $T$, and $m_L$ and $b_L$ are the relative and absolute changes to $L$):

$$ T_{s+1} = max(m_T * T_s + b_T, 1) $$

$$ L_{s+1} = min(max(m_L * L_s + b_L, 0), 1) $$

The Maximum Temperature has a minimum of 1%, and range of the Bean to Max LP Scalar is $[0, 1]$.

144 Cases to Rule Them All

In all 144 cases,mT and mL are set to 1, i.e., there are no proposed relative adjustments to Maximum Temperature or the Bean to Max LP Scalar. As a result, each cell in the following tables strictly includes [bT, bL], i.e., the absolute change in Maximum Temperature followed by the absolute change in the Bean to Max LP Scalar.

We propose the following absolute Maximum Temperature and Bean to Max LP Scalar changes in each case:

image

image

image

image

See the full Arweave upload of BIP-45 to read the Silo V3 Unmigrated BDV, Unripe λ → λ Conversions, Dewhitelist BEAN3CRV, Flood Update, Germination and Increase Max gm Reward sections.

Technical Rationale

See the full Arweave upload of BIP-45 to read the Technical Rationale section.

Economic Rationale

See the full Arweave upload of BIP-45 to read the Economic Rationale section.

Contract Changes

See the full Arweave upload of BIP-45 to read the Contract Changes section.

Beans Minted

None.

Audit

The commit hash of this BIP is ac8e681c7daa7cb046c1e405b27e50e7e44c0504.

Cyfrin performed an audit of the initial version of the Seed Gauge system. The audit report can be read here.

After significant changes, such as the Germination update, an audit competition of the Seed Gauge System was held via Codehawks using commit hash a3658861af8f5126224718af494d02352fbb3ea5. The final report can be read here.

Audit remediations were committed in PRs #819, #829 and #831.

Post Audit Changes

The following changes have been made to the Seed Gauge System code, but have not been audited.

PR #836, which skips updating the Bean to Max LP Scalar if the Chainlink oracle fails.

PR #837, which updates the Germination events.

PR #843, which adds the getLockedBeansFromTwaReserves view function.

BIP-42 Bug Fix

PR #854 fixed the Locked Bean calculation issue that was found during the BIP-42 Voting Period. The fix was reviewed by Cyfrin.

Effective

Immediately upon commitment.

Off-Chain Vote

For
86.61M STALK100%
Against
0 STALK0%
Abstain
0 STALK0%
Download mobile app to vote

Timeline

May 14, 2024Proposal created
May 15, 2024Proposal vote started
May 22, 2024Proposal vote ended
May 22, 2024Proposal updated