Removing Rebalancing

Hey folks - as I begin scoping out the cross-chain architecture in more detail, one feature remains somewhat of a thorn in my side - rebalancing.

Rebalancing could either have a complex cross-chain architecture (not ideal) or we could deploy the rebalancing contract on every network we integrate with (also not ideal). Both ideas would add much more complexity to the cross-chain effort and ongoing maintenance.

However, given the success of the Stability Fund in keeping bnUSD at its desired peg, I think an alternative system that’s simpler, safer and better fit for cross-chain architecture should be used. If we stick with rebalancing, the rebalancing contract and logic would need to be deployed on all target chains. We want to minimize the maintenance and logic of contracts on non-ICON chains.

Redemption Mechanism

I suggest a redemption mechanism, similar to the stability fund, but using borrower collateral. It’s quite similar to the original white paper of Balanced. The primary parameter would be redemptionCost, which controls the cost that redeemers must pay to borrowers in order to access their collateral. This is similar to the original rebalancing mechanism, where borrower collateral is sold for bnUSD to repay debt at favorable prices, but far easier to implement.

Additionally, this redemption mechanism would NOT have the same functionality as reverse rebalancing, which caused borrowers the most uncertainty regarding the leverage of their positions. The Stability Fund makes this mechanism obsolete, while the redemption mechanism provides supplementary value if the Stability Fund is ever emptied during a run on bnUSD. To be clear, the Stability Fund is still the most economical for arbitrageurs. The only time I expect this to be used is if the Stability Fund is empty and bnUSD holders are still trying to sell bnUSD.

This would be much easier for cross-chain development because we can process the redemption in an ICON-based smart contract, then authorize the release of funds on the target chain. For example, if somebody wanted to redeem bnUSD for BNB, they could burn the bnUSD on ICON, then ICON would send a message to BNB Smart Chain authorizing the release of the BNB tokens.


One thing I’d like to consider is if there should be a fee that goes to the DAO Fund, or if the entire fee charged should go to the borrower who’s collateral is sold. My initial thought is to still maintain the same fee that the stability fund has (0.5%), but give the rest of the fee to the borrower since it’s not ideal to have some of your loan closed unexpectedly.

So, I propose the initial parameters be:

1.) redemptionCost = 9.5%
2.) daoFee = 0.5%


redemptionCost = 9.5%
daoFee = 0.5%

  • Bob has 10 bnUSD
  • Bob wants to redeem his 10 bnUSD for as much value as possible, as he can’t hold it any longer - he is a forced seller of bnUSD for whatever reason.
  • The stability fund has 0 assets in it, so Bob can’t convert 10 bnUSD to 9.95 IUSDC or USDS
  • Therefore, Bob must use the redemption mechanism
  • Bob sends 10 bnUSD to the Balanced Loans contract
  • Bob receives $9 worth of ICX collateral
  • 9.95 bnUSD is used to repay the debt of the borrowers who sold collateral to Bob
  • 0.05 bnUSD is sent to the DAO Fund

Next Steps

Let me know your thoughts on the parameters and the proposal in general, all is open to discussion.

1 Like

Hi Scott.

All makes sense and agree with the simplification. Just one small correction to your example…$9.50 goes to borrower and 50c to DAO?

1 Like

This sounds good as a last resort mechanism for keeping the peg.
But am i correct in thinking the fee of 10% is the variable that can be adjusted to tighten peg. So for 10% it would only be beneficial to redeem at bnUSD < 0.9$.

How do we manage which positions you are allowed to redeem from?
A Que with being allowed to redeem a % then move to next position like rebalancing?

Yep this is what I was thinking.

Also correct

Made me double check my math haha but 50c would be 5%. Open to different numbers for suggested initial parameters

Sounds good, would there then also be no restrictions on when someone does redemption’s? It can be done by anyone whenever just that they would be giving away money if the price of bnUSD is higher than 0.9 (in this case). I guess this is the case which makes the solution simple and elegant, which is great for crosschain loans.

1 Like

So rebalancing can liquidate your entire loan, but the redemption mechanism would repay just a portion? Am I getting that right?

Rebalancing right now allows both increases and decreases in your loan. It also forces the borrower to trade against the DEX, incurring more fees. This redemption mechanism is just much simpler, similar to the original white paper. Bob comes in with 10 bnUSD, redeems it (minus a fee) from borrowers. The selected borrowers will work the same way as rebalancing does, where it spreads it out as much as possible

I think its safe to say, while I think the ‘better’ rebalancing is preferable, it all pales to improving cross chain performance.

Adding to that rebalancing is a far less impactful mechanism currently and should be even moreso when we are hooked into BSC. I also think removing the reverse rebalancing makes sense as having our stable being ‘too expensive’ does not seem to be a real problem in shorter time frames.

All in all makes sense, again with the most priority on cross chain performance


Oh crikey…apologies. Wasn’t suggesting higher dao fee. I always us $100 examples and brain automatically recalculated on that basis. Sigh, getting far slower in the old age

1 Like