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.
Mechanism
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.
Example:
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.
Safeguards
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%.
Implementation
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.