Sun
The Beanstalk peg maintenance mechanism requires a protocol-native timekeeping mechanism and regular code execution on Ethereum. The Sun keeps time on the Farm in Seasons and incentivizes cost-efficient and timely calling of the
gm
function.Beanstalk adjusts itself to return the Bean price to its value peg at the beginning of every Season. Each Season is ~1 hour long. The first Season began when Beanstalk was deployed on August 6, 2021.
The exact beginning of each Season may vary as Seasons do not begin until the
gm
function has been called through an Ethereum transaction. The first transaction that successfully calls the gm
function after the top of each hour UTC begins a new Season. Beanstalk only accepts one gm
function call per Season.Beanstalk covers the cost of calling the
gm
function by awarding the sender of an accepted gm
function call with newly minted Beans. To encourage regular gm
function calls even during periods of congestion on Ethereum while minimizing cost, the award is based on an approximation of the cost to call the gm
function in Beans in the current block and compounds 1% every additional second that elapses for 300 seconds (see Section 4 of the whitepaper for complete formulas).Upon acceptance of the
gm
call, the Sun:- 1.Increments the Season number;
- 2.Calculates deltaB, the sum of the time and liquidity weighted average shortage or excess Beans across liquidity pools on the Oracle Whitelist;
- 3.
- 4.
- 5.
- 6.Awards Beans to the address that successfully called the
gm
function.
Additional liquidity pools may be added to the Oracle Whitelist via Beanstalk governance. In order for a liquidity pool to be added to the Oracle Whitelist, Beanstalk requires:
- 1.The pool address; and
- 2.A function to calculate the liquidity and time weighted average shortage or excess of Beans in the pool (see Section 14.6 of the whitepaper for complete formulas).
Last modified 29d ago