Fee Auction
The Fee Auction facilitates permissionless Dutch auctions where collected protocol fees are sold to the winning bidder. The proceeds are sent to the Fee Receiver to convert to cUSD and distribute to stcUSD holders. The Fee Auction module provides an efficient and transparent way to distribute accumulated fees to participants while ensuring fair price discovery through time-based price decay.
Mechanics
Overview of Operations
Interest Harvesting: Interest Harvester realizes accumulated interest and sends it to Fee Auction
Dutch Auction: Fee Auction sells accumulated assets via a Dutch auction mechanism
Fee Distribution: Fee Receiver collects cUSD from auction sales and distributes to stcUSD token holders

Dutch Auction Mechanics
Admin sets a starting price (in cUSD) and the duration of auctions.
The price decays linearly over time (up to 90% or until minimum price is reached) until a winning bidder makes a purchase. All accumulated fees are distributed to the buyer.
The purchase triggers the start of the next auction, where the starting price is set to be double the settled price.
Key Auction Parameters
Starting Price: Initial price set by admin for each auction (in cUSD)
Duration: Auction duration set to 24 hours by default
Minimum Start Price: Minimum starting price set to 100 cUSD
Payment Token: cUSD is used as the payment token for all auctions
Recipient: Fee Receiver contract receives all auction proceeds
Price Multiplier: New auction starts at 2x the settled price of the previous auction
For function signatures, parameters, and data structures, see the Fee Auction Contract Reference.
Last updated