Design Notes - xUSD Dynamic Interest

In April, CompX Labs initiated discussion with the Algorand community via the Algorand forum on the subject of interest rate increases, dynamic interest and timing related to the xUSD Vaults as part of CompX (formally xBacked).

A very good discussion was had with lots of fantastic ideas and feedback from the community. Following this and an internal review we would like to present the following as our implementation plan for dynamic interest rates.

Thanks for reading CompX Labs Stack! Subscribe for free to receive new posts and support my work.

What is Dynamic Interest?

Firstly, a primer. To mint xUSD tokens, users must add collateral in the form of one of 11 supported ASAs. This collateral is locked within a smart contract and xUSD is minted based on parameters specific to each ASA (minimum collateral ratio, remaining xUSD to mint etc). All of this is created with a. flat 3% interest rate charged daily against users vaults in xUSD - essentially adding to their debt.

As we have seen, this 3% rate is among the lowest within the ecosystem to mint a stable coin. With deposit interest rates on Folks Finance for other stable coins - USDC , USDt etc - being above 15%, users are minting xUSD and swapping it for other stable coins, affecting the price of xUSD in a negative way and not allowing for a stable soft peg to $1. This is not the only reason - other reasons such as lack of utility and reasons to hold xUSD exist, but these will be rectified in the coming months.

One mechanism to help maintain the peg is the buying of xUSD from the open market. To influence this behaviour interest rates can be increased causing users to buy xUSD on the open market to pay back part or all of their loans. Unfortunately simply setting higher interest rates in a blanket fashion is neither productive nor good for the xUSD ecosystem.

Dynamic interest rates not he other hand react to the current price of xUSD - increasing it from the 3% base rate while xUSD verges from the soft $1 peg and returning to the base rate as it closes in on $1. As it is dynamic and needs no human intervention it is a fairer solution than CompX Labs setting arbitrary rates.


To achieve dynamic interest rates we will add new scripts to our backend which will check the price of xUSD, apply a formula and if necessary, increase or decrease interest rates.

The formula: ((((1 / (xUSDPrice ^ 2)) * (1+ baseInterestRate))-1)*100)

The above formula is a slight adaptation from user ROAM via the forum discussion. We have reduced the scalar property to 2 from 3 to make a less aggressive curve.



In Practice

As can be seen in the chart above, the interest rate curve can result in rates as high as 30+%. As this mechanism will be brought in while xUSD is off peg we need to add some safeguards to ensure users are not in danger of liquidation without time to act.


Maximum interest rate: The maximum interest rate that can ever be achieved with dynamic interest will be 40%

Maximum interest rate change per 24hrs: The maximum amount the interest rate can increase or decrease within a 24hr period is 2.5%.


We plan to give users 2 weeks notice before this goes live and have tentatively selected the 17th of June for when dynamic interest will take effect. This plan is to be publicly published and available for feedback - we are happy to take on additional feedback and augment the plan if necessary.

Thanks for reading CompX Labs Stack! Subscribe for free to receive new posts and support my work.


Great I mean at this point can’t wait to see it in action oooo and what happens if xUSD go above $1 like $1.01 or $1.02 just wondering :thinking:

maybe @Xxiled can confirm, but I understood that if xUSD price is above $1, then fee is base rate = 3%. there is no need to increase fee because “premium” is not harmful.



Correct! Interest only increases as the peg moves below $1 - at $1 and above the base rate is all that is applied


Arbitrage should be a normal market behavior if $xUSD is above peg!


What kind of intervention will compex do in case of market panic and the de-pegging persist?

Feels like two issues:

Market Panic: Depending on the type panic we’re seeing we have a number of levers we can use, and more coming to help stabilise prices of xUSD. Additional liquidity, interest rate adjustments, vault configurations etc. Really will depend on the problem at the time.
Persist De-Peg: Dynamic interest may not completely solve our peg issues, which is taken into account as we have additional utility coming for xUSD via staking and further liquidity being incentivised via TDR allocations.