I have been brainstorming many ideas on how to mitigate issues related to rebalancing. Here are a few things that are already in process:
1.) Getting bnUSD added to Omm to increase the utility of holding it. Personally I think this will help a lot but we’ll see.
2.) Listing bnUSD against USDT and incentivize it in order to make an easier arbitrage with centralized exchanges
3.) Educating community members on the best way to handle rebalancing, hedge against it, and better messaging around rebalancing in the app itself so all users expect it rather than it being a surprise.
Now from the tech architecture side, I’d like to implement a solution that will at the very least mitigate issues and at the very best have a meaningful impact on how often users are effected by rebalancing.
I’d like to develop a new smart contract called the “Stability Pool”. The Stability Pool will always be the first check by the rebalancing contract rather than going to user accounts first. It will be funded with BALN, sICX and bnUSD, and those assets will be traded with the intention of keeping bnUSD stable against sICX.
Let’s walk through a couple scenarios to explain what I mean:
1.) sICX is too expensive on the DEX (this is the most common situation we are experiencing)
How it works now:
- rebalance method is called on the Rebalancing smart contract
- rebalance contract sells sICX collateral from borrowers for bnUSD
- bnUSD is used to payoff their debt and burned
How it would work:
- rebalance method is called on the Rebalancing smart contract
- rebalance contract checks the Stability Pool contract to see if it has any sICX
- If the Stability Pool has sICX, then the Rebalance contract will sell sICX from the Stability Pool for bnUSD. The bnUSD will be added to the Stability Pool
- If the Stability Pool has 0 sICX, then the Rebalance contract will sell BALN from the Stability pool for sICX, then sell that sICX for bnUSD. The bnUSD will be added to the Stability Pool
- If the Stability pool has 0 sICX and 0 BALN, it will move on to borrowers (how it works now)
2.) sICX is too cheap on the DEX
How it works now:
- rebalance method is called on the Rebalancing smart contract
- rebalance contract mints more bnUSD for borrowers
- Minted bnUSD is used to buy sICX
- The purchased sICX is added as collateral to borrowers’ collateral positions
How it would work:
- rebalance method is called on the Rebalancing smart contract
- rebalance contract checks the Stability Pool contract to see if it has any bnUSD
- If the Stability Pool has bnUSD, then the Rebalance contract will buy sICX from the DEX using bnUSD. The sICX will be added to the Stability Pool
- If the Stability Pool has 0 sICX, then the Rebalance contract will sell BALN from the Stability pool for bnUSD, then use that bnUSD to buy sICX. The sICX will be added to the Stability Pool
- If the Stability pool has 0 bnUSD and 0 BALN, it will move on to borrowers (how it works now)
Now for specifics. Here is what I propose we allocate to the stability fund based on the amount of rebalancing that has occurred recently. Keep in mind, the DAO Fund can always take some of these funds back, add more funds, etc. These funds are by no means lost:
Proposed allocations to the Stability Fund
BALN: 250,000 tokens
sICX: 225,000 tokens
bnUSD: 250,000 tokens
Click here then scroll to the “Holdings” section for current balances of the DAO Fund