Beanstalk
  • Agronomics Handbook
  • Farmers' Almanac
  • Whitepaper
  • Contract Addresses
  • 🌱Overview
    • Introduction
    • Development Ethos
    • EIP-2535 Diamond
    • App Storage
    • Internal Balances
  • 🌾Protocol
    • Overview
    • Louper
    • Sun
      • Season Facet
    • Silo
      • Silo Facet
      • BDV Facet
      • Whitelist Facet
      • Convert Facet
      • Convert Getters Facet
      • Enroot Facet
      • Approval Facet
      • Metadata Facet
      • Migration Facet
      • Legacy Claim Withdrawal Facet
    • Field
      • Field Facet
      • Fundraiser Facet
    • Barn
      • Fertilizer Facet
      • Unripe Facet
    • Market
      • Marketplace Facet
    • Farm
      • Farm Facet
      • Depot Facet
      • Token Facet
      • Token Support Facet
      • Curve Facet
    • Diamond
      • Diamond Cut Facet
      • Diamond Loupe Facet
      • Ownership Facet
      • Pause Facet
  • 📜Misc.
    • Technical Recordings
    • Upgrade History
    • FAQ
    • Terminology Discrepancies
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. Protocol

Sun

Note that this page has not been updated to reflect the current state of Beanstalk, but is left here as a reference.

The Sun advances Beanstalk to the next Season through the sunrise function in the Season Facet. Every time an hour passes, sunrise can be called 1 more time.

The Season Facet has several subcontracts:

  • Oracle.sol -> Calculates the time weighted average number of Beans that Bean is above/below its value peg in all pools on the Oracle Whitelist.

  • Weather.sol -> Changes the Max Temperature (interest rate) depending on the Bean price, debt level and demand for Soil.

  • Sun.sol -> Sets the Soil for the next Season and mints new Beans if Oracle returns deltaB > 0 and distributes them as follows:

    • Up to 1/3 to Active Fertilizer holders (see Barn);

    • Up to 1/2 of the remaining amount to Pod holders (see Field); and

    • The rest to Stalkholders in the Silo (see Silo).

sunrise does the following steps:

  1. Increments the Season number;

  2. Calls Oracle to get deltaB;

  3. Calls Weather to adjust the Max Temperature and checks for Rain and Season of Plenty;

  4. Calls Sun to set the Soil and mint Beans if deltaB > 0; and

  5. Pays msg.sender Beans for paying the transaction fee associated with calling the function.

In the Beanstalk ecosystem,

  • Rain is referred to as Oversaturation; and

  • Season of Plenty is referred to as Flood.

See Terminology Discrepancies.

PreviousOverviewNextSeason Facet

Last updated 8 months ago

🌾