Skip to main content
Fees exist to put a buffer in front of suppliers. FeeCollector splits protocol USDG into reserve then treasury. BuyAndBurn spends treasury only.
Borrower interest and liquidation cuts flow through FeeCollector into reserve, then treasury, then an optional buy-and-burn of STK.Borrower interest and liquidation cuts flow through FeeCollector into reserve, then treasury, then an optional buy-and-burn of STK.
Many protocols send fees to a treasury first. Stockline fills a reserve to target before treasury receives anything.
  1. Reserve factor on interest: 15%.
  2. Protocol share of liquidation discount: 10%.
  3. Allocate to reserve until reserveTargetPct of pool.borrowed.
  4. Remainder to treasury.
FeeCollector hardcodes reserveTargetPct = 0.05e18 (5%) until PARAMETERS.json publishes another value. burnBudgetBps = 2000 (20% of treasury per epoch). burnEpoch = 7 days. Interest cash arrives on repay. Liquidation fees arrive as stock in the same transaction, then can be swept to USDG. Permissionless buyAndBurn on FeeCollector swaps treasury USDG to ETH to STK through the Pons pool, bounded by TWAP slippage and maxPerCall. Burn is a transfer to 0x000…dEaD. It cannot spend reserve. CreatorFeeRouter receives 70% of the 1% Pons trade fee in ETH. sweep() converts to USDG under a TWAP check and donates to USDGPool without minting shares. That is the pre-mainnet yield. Related: Earn, STK, Parameters. Interest cash arrives when a borrower repays. Liquidation fees arrive as stock in the same transaction as the seize, then can be swept to USDG. The reserve target is 5 percent of borrowed until a new number is published. Buy-and-burn cannot spend reserve. It cannot exceed the epoch budget or the per-call cap, and it cannot accept worse than max slippage against TWAP. Creator fees are the pre-mainnet path. They do not need emissions to start. Emissions, if started, stream developer-buy STK to sUSDG holders on an immutable schedule. ARCHITECTURE.md does not list burnBudgetBps or burnEpoch. The FeeCollector contract does. These docs follow the code.