Rebalancing, bnUSD supply and DAO Management

I’ve been thinking about this topic just about non-stop and I wanted to put some of my thoughts down on paper. Take this all with a grain of salt as I’m kind of thinking out loud here, open to discussion/insights/feedback.

What causes rebalancing

Rebalancing is triggered when there is +/- 2.5% deviation in the price of ICX/USD from centralized exchanges vs sICX/bnUSD on Balanced (adjusting for sICX/ICX price).

The cause of rebalancing/broken peg appears simple. Too many people buying sICX with bnUSD. However, it’s far more than that. It’s about how much bnUSD is in the entire system, in all of circulation. Frankly speaking - there is way too much bnUSD in circulation right now.

Flow of bnUSD within the DEX

As mentioned above, you would think, since rebalancing is based on sICX/bnUSD price on Balanced vs a CEX, that rebalancing is only dependent on trading activity of that specific pool, and that used to be true.

But then we added the BALN/sICX pool, and a number of other bnUSD pools against stablecoins and other assets. This opened up the flood gates for bnUSD to freely flow between liquidity pools, making it susceptible to other market forces and ultimately resulting in arbitrage trading that significantly impacts the peg of bnUSD against sICX (and everything else for that matter). Here are some examples:


Example 1
Bob mints 10,000 bnUSD and buys BALN with it because he is bullish on BALN. This shouldn’t effect the peg of bnUSD against sICX, right? Wrong.

As soon as Bob executes this trade, circular arb bots do the following, over and over:

bnUSD → sICX → BALN → bnUSD, then they’ll have more bnUSD than they started with.

As you can see, this starts buying up sICX with bnUSD, affecting the peg.


Example 2

Bob mints 10,000 bnUSD and sells it for 10,100 USDS to take advantage of cheap USDS. This shouldn’t effect the peg of bnUSD against sICX, right? Wrong.

As soon as Bob executes this trade, circular arb bots do the following, over and over:

bnUSD → sICX → OMM → USDS → bnUSD, then they’ll have more bnUSD than they started with.

As you can see, this starts buying up sICX with bnUSD, affecting the peg.


Example 3

Bob buys 10,000 BALN with 10,000 sICX because he’s bullish on BALN. This shouldn’t effect the peg of bnUSD against sICX, right? Wrong.

As soon as Bob executes this trade, circular arb bots do the following, over and over:

sICX → bnUSD → BALN → sICX ->, then they’ll have more sICX than they started with.

As you can see, this starts selling sICX for bnUSD, affecting the peg.


There’s just too much bnUSD in circulation. It’s not about a specific pair, it’s about all bnUSD in circulation.

It’s safe to assume that the majority of our users are bullish on crypto. Therefore it’s reasonable to expect that it’s almost always going to be bnUSD → something else, not something else → bnUSD (unless it’s a stablecoin-only pool). This continuously injects more bnUSD into the system, and through the circular arbs mentioned above, will continuously break the peg of bnUSD.

So, what do we do about it as managers of this DAO??

Managing LTV

LTV Meta-governance thread
Managing LTV around the circulating supply of bnUSD is pretty straight forward. We don’t need an extensive discussion every time we need to change LTV, we just need to follow the below principles:

  • If bnUSD is too cheap for too long → DAO must lower LTV to stop people from minting more bnUSD while also encouraging them to payback their debt
  • If bnUSD is too expensive for too long → DAO must increase LTV to allow borrowers to mint more bnUSD

At some point, maybe we can make this algorithmic based on the amount of rebalancing occuring.

Pool Incentives

BALN allocations meta-governance thread
The current BALN allocations also play a role in the broken peg. There is currently a massive incentive to mint bnUSD and throw it into circulation through buying sICX or BALN then supplying to the liquidity pool.

The current BALN incentive allocations seem to be paying people to increase circulation of bnUSD, therefore breaking the peg.

Non-stablecoin pools that are paired to bnUSD should not be heavily incentivized, at least not right now. Stablecoin pairs are ok because selling half USDT for bnUSD isn’t a directional bet/trade; it actually brings more non-bnUSD assets into circulation and helps with the peg.

However, most users are not willing to sell half their crypto-assets (i.e. ICX) into bnUSD in order to supply liquidity because it is indeed a directional bet, so they end up minting bnUSD, dumping half of it for the other asset, then supplying liquidity. We are seeing the results of it now, as there is way too much bnUSD in circulation.

Borrowers already have a heavy incentive to supply liquidity to the bnUSD pool that matches their collateral type in order to hedge against rebalancing, therefore there doesn’t need to be strong BALN incentives. I’m writing a separate blog post about how to hedge yourself (on average) against rebalancing using the liquidity pools and will link it later. For now, here’s a twitter thread about it.

Influencing borrower behavior and the supply of bnUSD

Simply put, if there is too much bnUSD in circulation, borrowers should repay some debt (or at least take some bnUSD out of circulation). If there is not enough bnUSD in circulation, borrowers should mint more bnUSD and put it to work.

Let’s take a look at a few comparable borrowing protocols and how they manage borrower behavior, then apply the same logic to Balanced


MakerDAO
When DAI is below $1 for too long (too much DAI in circulation)

  • MKR holders vote to jack up interest rates
  • Rates increase significantly and borrowers are like “Oh sh*t, I need to lower my leverage and payback my debt asap!”

When DAI is above $1 for too long (not enough DAI in circulation)

  • MKR holders vote to lower interest rates
  • Rates decrease significantly and borrowers are like “Oh snap, time to lever up, debt is cheap!”

As you can see, MakerDAO punishes borrowers if there’s too much borrowing of DAI by jacking up interest rates until they pay it back. This process is done manually by MKR holders.


Omm Finance
Omm is not an algorithmic stablecoin, but still must manipulate borrower behavior based on utliziation. If too much of a pool is borrowed, it increases the risk of a bank run, where Omm won’t have enough money to honor withdraw requests by lenders.

If utilization is too high:

  • Omm automatically increases interest rates on borrowers, then borrowers are like “Oh sh*t, I gotta close my leverage and payback my debt asap!” and lenders are like “Oh snap, these rates are amazing, I’m going to deposit more cash!”

If utilization is too low:

  • Rates drop considerably. Borrowers say “Oh snap, cheap debt, time to borrow some USDC and use it to earn a higher yield by LPing on Balanced”

As you can see, Omm punishes borrowers / incentivizes lenders if there’s too much borrowing of an asset by jacking up interest rates until they pay it back or more lenders come in. This is an automatic/algorithmic process.


Balanced
When bnUSD is below $1 by more than 2.5%:

  • Rebalancing kicks in and starts buying & burning bnUSD using borrowers’ collateral
  • BALN holders vote to decrease LTV to stop the additional minting of bnUSD
  • Borrowers buy up bnUSD to help stabilize the price and stop rebalancing

When bnUSD is above $1 by more than 2.5%:

  • Rebalancing kicks in and starts minting bnUSD for borrowers and selling it for more collateral to add to their position
  • BALN holders vote to increase LTV to allow borrowers to mint more bnUSD
  • Borrowers sell bnUSD for other assets to help stabilize the price and stop rebalancing

As you can see, Balanced punishes borrowers if there’s too much borrowing of bnUSD by lowering LTV and rebalancing. Rebalancing is automatic/algorithmic while LTV management is currently manual.

Adding new collateral types might help

Every time we add a new collateral type, there should be a corresponding bnUSD pair to rebalance against with a minor amount of BALN incentives. Just enough incentive to get borrowers using that collateral type to be LPs. This way those borrowers are hedged against rebalancing while not creating too high an incentive to mint bnUSD just to participate in the pool.

This will ease the rebalancing burden of each individual collateral type, as right now the entire burden falls on the shoulders of sICX borrowers and the sICX/bnUSD pair. As an example, right now if somebody pumps BALN/bnUSD, the bnUSD flows to sICX/bnUSD, then sICX borrowers get rebalanced. If we add BALN borrowers, rebalancing would be spread across both of them to create accurate pricing on the sICX/bnUSD pool and BALN/bnUSD pool.

Next Steps

  • Be active in managing LTV. If the peg is regularly broken below $1, get a proposal up to lower LTV, the opposite if above $1.
  • Clear messaging/content around bnUSD, rebalancing and what it means to be a Borrower on Balanced. The role of Borrowers is to help maintain the stability of bnUSD against the asset they use as collateral. They can then hedge themselves in the corresponding liquidity pool
  • Continue honing pool incentives. My current plan is to focus more on incentivizing BALN/sICX and less on sICX/bnUSD and BALN/bnUSD. sICX/bnUSD and BALN/bnUSD over-incentivize minting of bnUSD and dumping it into the pool.
  • Add new collateral types and pair them to bnUSD. By doing so, I believe we spread the burden of rebalancing and maintaining the bnUSD peg across more and more pairs/borrowers. This is already in development per our previous roadmap update.
5 Likes

We keep changing things and changing them back which shows very poor foresight. More importantly it just drops the integrity of the platform for users. As you know everyone wants a consistent experience and this is moreso when it has to do with money. Lets just use the DAO fund to manage bnusd peg if we just keep changing things back this way. Feel like borrowers/LP providers are on the chopping block all the time. We did this with borrower origination fee and now the rebalancing TVL. Enacting such changes should also be given notice of like10 days heads up in advance not like OMM and how they hurt people that borrowed sICX. Though this change is not like that at all but a big change to borrower/LP mechanics we should give a decent time to the community before enacting.

2 Likes

I couldn’t disagree more. One of the biggest hurdles we as a DAO are going to face is becoming nimble. We need to be able to act on the market and react to the market.

Another huge hurdle that we face is mastering peg management. We absolutely must refine how we manage LTV and pool rewards to the benefit of the peg.

Using the DAO fund to prop up the peg is short sighted. It will only mitigate rebalancing, and that only for a short time. I don’t mind the idea of a stability fund to minimize rebalancing, and even feel it would be a good bellwether for when LTV needs adjusting.

4 Likes

It was actively discussed for a while and it was put up to a vote. I don’t think they “hurt” people.

1 Like

Do you not think that it’s an issue that bnUSD does not provide a yield or that it needs to be converted into IUSDC or USDS to generate a yield. I think the key is to increase the utilisation of bnUSD. If it’s only purpose is to be minted and converted into another asset, we’ll continue to have selling pressure.

3 Likes

Feels like “Bob” needs to let the new bnUSD LPs play out and measure impact they were intended in BIP9 before introducing a new lever in the continuous experiment. Also, should consider burning (some of) the bnUSD or sICX generated as fees or as exhaust mentioned in Benny’s examples.

Look back @ the July proposal discussion to increase to 35% LTV. Some gems in there… Would also be helpful to share the data on why 25% vs 27%, 33% - generally what are the success metrics for balanced and how are we doing against them.

2 Likes

you’ve hit it right in the bullseye sir, couldn’t agree with this more, we’re just beating around the bush if we don’t increase the number of use cases for bnUSD.

I suggest an automation that lowers LTV by lets say 0.25% everytime a rebalance happens. And of course increase LTV everytime it rebalances to the upside.

This should stop the rebuy loop because at some point people won’t have enough collateral to mint new bnUSD to buy back their sICX.

To open a new proposal every time we want to change LTV is too slow in my opinion and to propose the right % of LTV In a complex and dynamic ecosystem like ours is hard. Automation would help a lot.

2 Likes

Shortsightedness is voting to increase borrower fees to 1.15% with the reason for it being to make money and then saying lets bring it back to 0.75% to help borrowers and we dont need that money anymore we make enough from swaps.

Well just use the extra money from the 1.15% and burn it. Use the DAO to buy up some bnusd and burn it. This randomness of when LTV will be moved up or down is not a positive user experience. The changes are big too (25% - 35%). So until this automated method of doing it is available lets use other strategies that doesnt hinder user experience so much. Users are not alpha testing dummies, this is mainnet now. We put money in, lets get the DAO to help a bit.

We can also swap bnUSD in the DAO for USDC and throw that into OMM. Use the returns to buy back bnusd and burn them. And do the same when bnusd is listed on OMM. Doesnt fully solve issues but it helps alot and this is just off the top of my head im sure we can find more ways too that doesnt depend on users a full 100% all the time. Strategies like this is how we should look at things to support the platform in the interim until bnusd peg is so tight we dont need to do that.

@UzumakiH7

I hear your frustration, but I feel your proposed solutions are trying to lesson the effects of rebalancing, instead of trying to solve the problem.

It’s not the DAO fund (BALN holders) that are throwing off the peg ~ it’s that there is too much bnUSD circulating.

Stabilizing the peg by influencing borrower behaviour and supply of bnUSD is probably the best long term solution for creating a stable peg.

Looking at the examples of how MakerDAO and OMM react to the changing realities of the market should bring some understanding to how and why it works.

The DAO fund is user controlled and depends on all BALN holders. My hope is that a good portion of that fund is used to incentivize capital into Balanced. I do not want to see the fund used to subsidize borrowers who are over minting bnUSD and throwing off the peg.

1 Like

That extra money is already in bnUSD (originating fees are paid in bnUSD). With it sitting in the DAO fund it doesn’t put pressure on the peg. “Burning” bnUSD that is sitting in the DAO fund does not effect the peg.

Taking bnUSD out of the fund to buy another stable (or token) does put pressure on the peg though.

Did you argue that the change was too big when it went from 25% to 35%?

This is kind of humorous to me, because you are arguing that things should stay the same, like they would in alpha testing — where everything can stay the same, because the markets and variables are simulated and controllable.

In reality the market changes all the time. If anything, we as a DAO need to learn how best to react to the changing market in a timely manner.

1 Like

Lessen the effects of 100% user dependence to sort out bnUSD to supply. Big difference. Shouldnt be 100% to the user all the time.

Not arguing at all for things to stay the same. I didnt even say the DAO fund is throwing off the peg. Where did you even make such assumptions. Most of your responses are assumptions and the ones that do provide some info doesnt help me believe that these changes are the way.

All these half attempts at solving the peg at the cost of user $$ and experience is not the smart approach. Start investing DAO funds so it can be used to buy up bnusd. Swap all stable coins in DAO to bnusd and hold/burn. If we believe in bnusd as a stablecoin why wouldnt the DAO do these things?

Where is the balance if users are doing everything? Just atleast 10% of the peg have the DAO support it till things are sorted.

My apologize, I inferred it from the general tone; for that I am sorry.

I porbably worded my feelings ambiguously; I’ll try to better.

It’s partly the borrowers’ fault the peg is broken. Borrowers should bear part of the burden to fix it.

It’s partly the DAO’s fault for not fully understanding the relationships and affects that TVL, pool incentives, and circulating supply of bnUSD have in regards to keeping the peg. The DAO is responsible for not only creating a solution, but also for mastering the variables that can keep the peg sustainable.

Let me try another way then. I’m saying that right now, stabilizing the peg using TVL and incentives to manage the supply and utility of bnUSD seems like the most likely long term and sustainable solution. My belief stems from a great deal of thought and the well thought out topic post.

I do not believe using the DAO fund will have any lasting effect on stabilizing the peg.
My understanding of how things are and why it is not sustainable.:

Assumptions:
Rate of rebalancing: 250,000 bnUSD/day ^
DAO sICX: $521,841 (241,708 sICX)
DAO BALN: $2,166,791 (1,198,904 BALN)

Verdict, in just over 2 days we’ve used all the sICX in the fund and we are back to square one.

But wait, let’s sell off some of that BALN to carry the burden. Buys us less than 9 days, if we assume that a massive sell off of BALN doesn’t crash the price.

So now we are sitting on a big pile of bnUSD that we can’t move without causing the exact problem we are trying to correct.

I do believe rebalancing will reduce with the additional sICX on the market, but then we are just debating when we end up back at square one.

^ Working off of some rough calculations:

  • The ratio between the bnusd rebalanced in the last 24hours and the loan total on my account is 0.01913.
  • Applying that to the total BnUSD supply of 17,402,499 gives us 332,909 bnUSD in the past 24 hrs
    — please correct me if I’m wrong.

I feel using the DAO fund in the way you suggest is no more than a band-aid.

I also feel that influencing borrower behavior and the supply of bnUSD by managing TVL and incentives is going to be a huge part of the long term solution. Leading to more $$ for users and a better experience.

I believe the longer we wait to begin mastering this management, the more it will cost user $$ and experience.

1 Like

I’ll jump in to address some key points, but overall great discussion and I appreciate everybody’s participation.


@UzumakiH7 I must say that I strongly disagree with your positions. I encourage you to think deeper about the borrower behavior section of my original post, and how Borrowers are incentivized/punished and how market conditions/platform interest rates are constantly changing as a result of these incentives/punishments.

These points below highlight to me that you should reconsider how DeFi products incentivize people to take certain actions. People need to pay attention and manage their position. It’s not about foresight - market conditions change, platform conditions change, and the key is to make it more algorithmic, not more rigid/consistent.

Having said that, I of course support using the DAO Fund to act as a buffer considering I wrote the proposal, but a buffer is not a replacement to active management. A buffer will give us time to adjust to changing conditions prior to it affecting users, but if we don’t react to changing market conditions, then the DAO Fund buffer will disappear. It will sell all of its sICX for bnUSD and be sitting on about 500k bnUSD.

Then the DAO could start selling BALN for bnUSD, which is similar to when UST is burned and LUNA is minted. Selling BALN from the DAO Fund for bnUSD is like minting LUNA when burning UST, while buying BALN with bnUSD from the DAO Fund is like burning LUNA when minting UST.


@McLucks @Meerkatoshi

I 100% agree here. This will help on the demand side of the equation. Demand is more of an external force though, while the supply side is something more easily managed using BALN voting. Looking forward to seeing how bnUSD demand is effected by the listing on Omm, we can then adjust accordingly.


@upwardicon

What’s important is burning circulating supply of bnUSD, not supply held in the DAO Fund (which is the bnUSD generated as fees). Circulating bnUSD is getting burned with every rebalancing transaction. sICX collateral is sold for bnUSD, then the bnUSD is burned to payoff the debt of those borrowers. The issue right now is people continuing to mint it after it is burned to repurchase the sICX collateral that was used to purchase and burn the bnUSD.

This is a good question. Unfortunately it’s tough to answer. @BillGates had an excellent suggestion on how to algorithmically manage LTV, which I’m definitely going to look into. There still needs to be some research and thought put into an algorithm, which is essentially what you’re asking for here. If I knew why 25% would be better than 27%, then I would be coding up the algorithm as we speak instead of proposing incremental changes manually.

However, rebalancing (below $1) has been consistently happening for weeks and the top 10 bnUSD holders (not including contracts) have over 10% of bnUSD supply just sitting in their wallet, not earning yield, and thankfully not dumping it for other assets.

What that says to me is that the circulating supply of bnUSD is too high, especially with so much just sitting on the sidelines. Lowering LTV is in order. By how much, how often, etc. is still not a precise science, though I look forward to developing this algorithm and improving the process together.

4 Likes

I fully agree with the core issue being the supply of bnUSD being too high. I am not convinced altering the max LTV is the fix.

Whatever the economic reason, the current parameters have led to this current amount of bnUSD minted. The only parameter the LTV effects is the ‘capital efficiency’ of collateral. The exact same current bnUSD supply can be maintained just by adding some more collateral.

In the short term, it will increase borrower rewards for anyone under 25%, and remove them from anyone over 35%. Okay the ones over 35% pay some back, but anyone under now has an increased incentive to mint bnUSD due to increased borrower rewards. The economics of borrowing have not changed, only which parties are receiving it.
Additionally, the current bnUSD supply is well under 25% of total collateral, so that shift can happen easily with zero change in collateral, but likely will happen with a combination of increased minting by current participants below 25% and an increase in collateral.

All economic factors of current supply still remain, so the supply should have a similar equilibrium.

This is compounded by the fact that if 10% of the bnUSD supply is sitting in large accounts, presumably to maximise borrower rewards, with the decrease in max LVT if they repay that stagnant bnUSD we have the same issue since bnUSD just held current not effecting the peg. If all of it is burned, the amount of ‘liquid’ bnUSD remains the same.
That is neither here nor there and is neutral, but I do not see this move being particularly effective in reducing bnUSD supply. And especially muted by these apparently large reserves of bnUSD sitting there.

The market has decided that current net value of minting bnUSD is worth however much has been minted currently, so I don’t see that changing much just from this move, it will just shift it around a bit between participants. Not to say it will have ZERO effect since capital efficency matters, but it takes huge moves in max LTV for small changes to the net value of minting IMO.

2 Likes

Never realized that I would have to become an economist in my sparetime :sweat_smile:.
It does seem like McLucks is on to something. As long as bnUSD is only the vehicle to access other currencies it will only increase in circulation. We need utility for bnUSD, like yield generation. Is that not possible directly on Balanced Network?
As an alternative, would it be possible to loan directly in BALN or ICX instead of bnUSD? What whould that do to the DAO?

Of course, I mean “borrow” BALN or ICX, not “loan”. Sorry.

Do you mean it isn’t the fix, or isn’t part of the fix?

What are your thoughts on how to influence/manage the supply of bnUSD?

What do you think about continuing to adjust LTV incrementally to help stabilize the peg?

1 Like