From chefs to relics

As an alternative to locking fBeets, the community at Beethoven X has decided implement Reliquary for fBeets which was developed by the Byte Masons.

In essence, Reliquary is like the Masterchef but with a twist. The amount of rewards emitted for a position is not only based on staked LP size, but also on the “age” of the staked LP.

For more information about Reliquary, check out these links:

The problem that we face is that Reliquary needs Beets to emit to the staked LP positions but our Masterchef contract is the owner of the Beets contract and therefore the only one who can mint Beets.

How does the Reliquary continuously receive Beets from the Masterchef to emit?

Beets will always and forever only be minted by the Masterchef. The only way to receive these rewards is by joining a Masterchef farm. This led to the idea to create a contract that is 1) an ERC20 token that will join a Masterchef farm and 2) has the ability to periodically harvest Beets from the Masterchef and transfer them to the Reliquary.

Schema of the farms and contract

A small but important difference between how the Masterchef and Reliquary emit Beets, is that the Masterchef emits Beets per block and Reliquary per second. This means, it’s not easy to calculate the emission rate on Reliquary because the block speeds vary and we need to make sure that Reliquary does not run out of Beets. To address this issue, the Beets Reliquary Streamer not only transfers Beets, it will also calculate the emission rate based on the amount of Beets it harvested and the time since it harvested last. The result of this is, that Reliquary will accurately mirror the emission rate of the Masterchef automatically.

The Beets Reliquary Streamer will need to be called regularly to harvest and transfer Beets as well as set the emission rate accordingly. This is done by a script that calls the contract and at the same time it keeps track of how many Beets are still on Reliquary and calculate how long these will last based on the current rate.

Accumulate Beets first

For the Beets Reliquary Streamer to be able to harvest and transfer Beets, the farm needs to accumulate Beets first. This results in a “delay” from minting the Beets on the Masterchef to emitting them on Reliquary.

Something to keep in mind is that at a certain point in time, the emissions on the Masterchef fBeets farm will stop and emissions on Reliquary fBeets farm will start. This is when LPs will need to migrate their liquidity to the new farm to continue to earn rewards.

At this certain point in time the above mentioned “delay” has an actual impact. It means that for the duration of the delay, no Beets are emitted to any fBeets farm.

Why is the delay 8 days and can’t we have 0 days?

We came to the conclusion that a delay of 8 days would allow the fBeets streaming farm to accumulate enough Beets that a seamless operation can be guaranteed in the future. Like this we can harvest and transfer the accumulated Beets every week and still have enough spare Beets in case something goes wrong and we need to take action.

If we don’t want to have 8 days without emissions on the fBeets farm, another option is to front-load Reliquary with 8 days worth of Beets from another source.

This is currently being discussed in the Beethoven-X governance chat and voting is live soon on snapshot.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store