How does a contraction work?

If a contraction is required (i.e. if the TWAP < Target price of FLOAT) and we need to buy FLOAT from the market to stabilise the price closer to its target, the following procedure takes place:

  • We run what is called a Reverse Dutch Auction. This is where the protocol, as a buyer, offers to buy FLOAT from arbitragers starting at the market price (or rather, the TWAP) and burns it.

  • We buy this FLOAT at increasing price increments every block of the auction between the Target Price and the TWAP until either all the FLOAT the protocol is willing to purchase is bought (i.e. there was a significant arbitrage opportunity available), or there is no more FLOAT willing to be sold by sellers (the arbitrage opportunity has been exhausted). In either case, sufficient amounts of FLOAT should have been bought and burned to move the market price back to target.

  • In general, the price range at which FLOAT is bought if it is below its target price is:

Target Price>Range of prices new FLOAT is offered for >TWAPTarget \ Price > Range \ of \ prices \ new \ FLOAT \ is \ offered \ for \ > TWAP

To buy FLOAT, the protocol offers arbitragers a blend of ETH and BANK. In general, if the Basket Factor were at target (100%), the protocol would pay the full amount of Float at current auction price in ETH.

However, it is likely that the Basket Factor will not always be at 100%. Contractions will be affected by the Basket Factor

  • If the 100% < Basket Factor the protocol will purchase FLOAT, paying the full amount in ETH.

  • If the Basket Factor < 100% (i.e. there is a deficit of ETH in the basket), the protocol will pay for the bought Float partly in ETH and partly in BANK based on the current basket factor (For instance, if the Basket Factor were 80%, we would buy FLOAT at each increment with 80% ETH and 20% newly minted BANK.).

  • In general, the amount of ETH/BANK we use to buy up FLOAT is this:


Basket Factor

Surplus/deficit Basket Factor

ETH/BANK split




ETH % = Basket Factor, BANK % = 1-ETH%

Extreme Basket Deficit



40% ETH, 60% BANK

Basket Deficit



90% ETH

10% BANK

Basket Surplus



100% ETH, 0% BANK

  • The ETH used to buy FLOAT is taken from the Basket.

  • The BANK used to buy FLOAT is minted ex nihilo (meaning this will decrease the price of BANK, ceteris paribus).

In later versions of the Protocol we will explore the following idea:

In cases of extreme basket surplus the Protocol buys a blend of both FLOAT and BANK off the market, transferring the excess basket value to BANK holders. For example:

  • If the Basket Factor > 100% (i.e. there is a major surplus of ETH in the basket), the protocol buys a blend of both FLOAT and BANK off the market using ETH from the basket. This BANK is burned, transferring the excess basket value to bank holders. The protocol will take a small fee in terms of BANK to go into a community governed treasury to pay for future development and associated costs.