Auction Pricing

Bond Protocol utilizes the Sequential Dutch Auction for its bond pricing mechanism. This mechanism is specified in detail in the SDAM paper released by Bond Protocol.

Auction Type

In a Dutch Auction, a high initial price is set for an item (in this case the exchange rate between two tokens). Once the auction starts, the price decreases (decays) as time passes until it is purchased (or hits a configured minimum price that it cannot go below).

In a Sequential Dutch Auction, once a purchase is made, the price increases from the purchase and starts to decay again until another purchase is made. One can also view this as immediately starting a new auction on the next token after a purchase is made. The bounds for the auction are the duration it is expected to last for and the capacity of tokens to sell.

Payout to Deposit ratio

Bond pricing is not the price of one of the tokens but the ratio of payout to deposit. As bond price falls, the same payout can be acquired with a decreasing deposit. This allows for the auction to function without the need for an oracle.

Contract Initialization

Markets are initialized with an amount of debt equal to the total amount either to sell or acquire depending on configuration and this debt is grouped into a discrete amount of time, the decay interval, over which that debt should decay.

Vesting

The amount of time is 5 times the deposit interval or user-configured as long as it is a minimum of 3 days. The 3 day minimum ensures the price will not suddenly drop to 0. Using a multiple of the deposit interval ensures that debt will not decay significantly in between deposits.

Debt decay

Debt is expected to decay linearly from 1 to 0 during the decay interval and it does so by tracking debt and a reference point in time.

Market initialization and tuning both store the amount of debt is expected to decrease over a decay interval and both calculate the control variable based on that amount and time frame.

When a deposit is made, debt increases by the amount sold or acquired depending on configuration. The reference point in time moves forward through the decay interval proportional to the change in debt relative to the expected decrease over the decay interval. This decays the debt linearly through time even as new debt is added.

Bond Price

The Sequential Dutch Auctioneer Contract uses the following equation to calculate the price of a particular market:

Price=DecayedDebtControlVariablePrice = Decayed Debt * Control Variable

​Control Variable

Control Variable is an independent variable that controls the relationship between Price and Debt.

During market initialization, the price is provided either directly or through an oracle and the debt is the total amount either to sell or acquire over a deposit interval.

During tuning, the price is the price of the deposit that triggered the tuning and debt is the remaining amount either to sell or acquire over a deposit interval. By adjusting the control variable based on what remains to be sold, the market is able to scale prices up or down relative to debt so that the target capacity is reached by the market conclusion.

Control variable updates are called Tuning. The tuning frequency is set by the tuneInterval and is triggered by purchases.

Last updated