Auction Style Bonds

Greetings community,

Bonds are a product whereby users are able to purchase assets from the treasury at a certain spot price (typically at a discount). A community member brought it up that the incorporation of an auction could optimize for filling a bond at the most optimal spot price ranges. This would be extremely helpful, especially since we are looking to create PoL on the DEX where a certain amount of emissions are devoted to bonds on a daily basis.

Comment section below is for proposing and discussing potential bond auction models. Models will be discussed on a twitter space - potential grant for the implementation and ideation of the model.

A number of auctions come to mind, I’ll list them in order of most favourite to least favourite in my mind.

  1. Dutch Auction: An inverted auction where the price per bond descends over time. This allows demand for a token to be incorporated into the price. Buyers commit at the lowest number of tokens they would accept for their investment. The end price is determined where the current price of the auction multiplied by the total number of bonds equals the amount committed. A floor could be set to cancel the auction if the maximum discount rate is not met.

  2. (a) Batch Sale: A window is opened for any and all people to contribute funds to a pool which will be distributed after the close. The more funds in the pool, the more expensive the bonds will be (i.e. smaller discount or potential premium). A floor could be set to cancel the auction if the maximum discount rate is not met.
    (b) Streaming Auction: A fixed number of tokens proportionally distributed to total contributions split over successive auctions. Breaks one auction into many smaller auctions. This modified version of a batch auction prevents the impact of last-minute participation.

  3. Simple Sale: The most primitive form of auction. A discount is pre-determined and a fixed number of bonds are sold at this price in an FCFS model.


I’ll help set some basis for the brainstorm. What are we trying to solve and what are bonds? Bonds are to me the most important function that Shade has for growth at the moment. The implementation of this can make or break the success of the protocol overall so it’s very important we nail this. We should assume that when someone provides assets to get SHD they will sell it. The higher the discount the more pressure we’re putting on price (because we give out more SHD).

I’d break bonds down into a few parts:

  1. Asset Being Bought
  2. Asset Being Sold
  3. Price of Asset Being Bought
  4. Price of Asset Being Sold (Including Discount)
  5. Lockup Period for Sold Asset
  6. Period Sale Is Open For
  7. Amount of Asset Being Sold

For this discussion I think are focusing mostly on #4, #5 and #6. Right now the implementation of #4 is that the protocol will set a discount. This is set along with #5 and corresponding lockup period for each discount. For #6 the period of sale is open until the bond is filled or cancelled by the protocol.

Shortcomings of the current model:

  1. The protocol is guessing at #4 (discount) and #5 (lockup period).
  2. The protocol has to make a new bond for each discount/lockup pair by asset.

Benefits of current model:

  1. The protocol has control of risk parameters to ensure that the DAO doesn’t create bad inflation.

My mind immediately when I think of auctions is danger. Auctions only work well when there is excess demand so people bid against one another. If the absence of this everyone will just get the largest discount available. Mostly due to concern that we will end up putting unneeded pressure on #6 (period of sale) to immediately fill the bond at the expense of #4 (a good sale price). My thinking is that we should focus on #4 and not on #6. How could we do that?