Mirror DEX Solution

I can find other ways to fund the bounty, need be; I’m not so worried about that part. In regards to the concerns, I’ll have responses up soon as I mentioned~

1 Like

sounds like this has potential. would love to hear the thoughts of @Sihyeok and co re; this.
thanks for your work.

Although the technical details are above my head, I like the general idea. Thumbs up for activity and further development on this front.

What happens in multiplex pool if some mAsset is very demanded and its position in pool goes to close to zero? Lets simplify it to the case that someone places big order and buy all remaining pieces of the mAsset from the pool.
In standard pool price of mAssets and reward increases dramaticaly, in the multiplex pool all mAssets with increase slightly? Then also the mAsset which was sold out increases premium only slightly, right? Can it lead to situation that premium is not motivating for minting new pieces of mAsset?

I believe the most critical issues with Mirror Protocol now is the “random” liquidation of short position. WIthout solving this urgent issue, the rest of effort will be futile.

I’ve actually been thinking about this recently;
The scenario you noted is correct; importantly, immense premiums will be equalized with all other mAsset UST concentrations which would make it more difficult to take advantage of price differences resulting from either a global discount or global premium. In other words, liquidity depth increases, but potentially to the detriment of allowing prices to move towards Oracle. Several solutions to this are as follows:

Multiplex Pool-specific solutions:
1.) A reward allocation system, whether it’s a gauged system like I suggest in the paper or otherwise, would allow users to put their LP towards mAssets that are in need of liquidity which would be voted on (or auto-allocated based upon mAsset liquidity in $) to receive more rewards (such as those in your example). This is specifically in regards to the rewards allocated to the mAsset side.

2.) More efficient LP methods (single sided) would let users be more flexible in how they take advantage of price differences and dynamic incentives, especially if a gauging system is in place.
The greater UST-mAsset reward balance would be determined based on something like what we have/want for short farms where, if there is a premium, mAssets provision rewards will be higher compared to the UST side

3.) Only rebalance the premiums a set number of times a day rather than every block. This would allow prices to act independently of one another, but still stay relatively balanced pool-price-wise day to day. Problem with this would be bots who might take advantage of the price shift and also liquidity depth bonus of this system is lost intraday.
*A middle ground would be to have a delta system that keeps track of changes/deviations from what a perfectly equilibrated set of pools would look like that converges to the point of equilibrium at a pre-defined rate (like how LUNA/UST’s market mechanism replenishment mechanism works). This will take some more thinking for sure though (the math might be hard to implement on-chain)

More ‘out-there’ Solutions:
4.) A treasury implementation that, under very specific conditions, is allowed to take or provide a portion of UST from the UST pool as a ‘service fee’. This treasury would use its funds to balance pools in the long run. This one I haven’t thought about that much tbh so it could be bad, just a thought.

5.) Others have spoken about adjusting the CDP fee to be less, or dynamic even; If a treasury exists, CDP creation could be subsidized (have the creation fee be negative when premiums exist), but then have it cost the subsidization % + some more minor fee to close the CDP to prevent users from exiting when liquidity is required.
The whole CDP fee existing is its own can of worms I’d like to work on separately; maybe make a system that allows short farming (net mAsset contribution to pool) that HAS a creation or closure fee, where normal minting (simply creating and then sale of) does NOT. Problem with this is that you’d have to lock liquidity provision, or minting, to specific contracts that ONLY allow certain behaviors (to prevent harmful DN)

6.) Create bond-esque liquidity provision opportunities that guarantee a %APR given current pool conditions. This bond would have some expiry date. The reason I suggest something like this is that passive LPer dominance (set it and leave it users) makes it hard to actively adjust mAsset premiums. Using NFT’s as a way to implement this would be pretty cool as well (unrelated to a jpeg, and more the non-fungible storage of information as a ‘token’). If there are methods that beneficially support active LPers, balancing things might be better off.

What I’d like to do:
It would be super helpful to breakdown the current concentration of positions (short vs long vs DN) according to each mAsset right now to model out what a multiplex pool application might look like in practice. Doing so would let us know what the global premium/discount might be, as well as what mAssets would be contributing to premium/discount the most (depending upon the value of short, long and DN positions). Just haven’t had the time or ability to query the chain personally (also might take a long ass time for a computer to sift through due to sheer size of the chain).

The goal of the multiplex pool is to let Mirror have more versatile, yet sweeping, tools to tackle premiums more effectively. Right now, each mAsset deals with premiums individually which is VERY hard to fix unless you have some arb-treasury, or another way to mint mAsset w/o strings attatched to a CDP. My hope is that, with a dynamic fee/reward structure alongside a multiplex pool, premiums will be able to be reigned in.

Edit 1: Formatting
Edit 2: Clarity


That’s mostly due to after-market/pre-market Oracle reporting. The issue lies in that, if we remove minting during pre and post market, Mirror users are at a disadvantage compared to tradFi users (who can short during pre and post market).

Might be worth separating trading sessions into CDP types?
Perhaps have a permanent, normal session CDP that only is liquidated during trading hours and then a temporary pre/post-market CDP that’s converted to a normal one at the start of the next trading session. This way, users aren’t liquidated during off-hours, but are still able to create new positions during said hours. Keeps speculation, but prevents unwanted losses.
Not sure if it’d be wise to allow the shifting of Normal CDPs to extended hours CDPs; maybe for a minor fee?

Great thoughts. I think some of these solutions would be best if used collectively, that way the price pegging system would be more “decentralized”, therefore it’d be more effective - more ways to earn higher yield or get lower fees would result in new traders and in the end more liquidity. If we want Mirror to be successful in the long run, we have to draw in new participants. The EU Parliament agreed on tracking down crypto wallets related to CEXs in the near future (a tendency which will be followed by more countries I’m afraid), so Mirror would be in a really favorable position, if a solid, tried system would await the fleeing mass. In the current form though, the protocol is not supporting short term traders, but I think that this community must be the target audience.

Commenting on the solutions:
1.) The reward allocation system regarding the need of liquidity would urge the yield farmers to give in-depth liquidity to all assets across-the board, which is a must have feature IMO.

2.) Single sided staking is always welcome, canceling out IL risk would be attractive for cautious farmers - more liquidity coming in is sure nice.

3.) I think the refracted daily premium rebalancing would only benefit the farmer community, while it’d make the protocol unusable for day traders.

4.) In the perspective of sustainability for the long run, I think that using treasury funds in order to rebalance the price can be only an emergency solution, but in case of your multiplex pool idea (and especially if these other ideas are also implemented) it seems it just wouldn’t be necessary.

5.) Highly encourage to rework the CDP fees to a dynamic structure, my suggestion would be to build a time-based structure. If the position is closed within the day for example, only a 0.1% fee applies, if the position is opened for a week it’s 0.5%, and so on. Also, a multiplier could be attached to it, if longing into high premium/shorting into low premium (bit like some CEX’s maker-taker fee structure). Negative creation fee above/below a certain premium with a certain lockup period maybe? Without lowering the fees, highly doubt that short term traders would use Mirror. It’s common interest, with more volume comes more trading fee to the farmers.

6.) Interesting idea, but concerned about that fixed expiry date in the case of large liquidity could cause huge fluctuation in the price on the given day. Also, in the case of UST-mAsset pairs it’d be fairly risky to be in a fixed expiry pool, given the lack of ability to “roll out” the IL risk in case of huge short term price swings. Maybe in case of single sided pools it’d be useful.

About the LP dominance question and also reflecting to the delta rebalance idea, maybe if part of the trading fees would be used to systematically buy/sell assets based on the premium would work out. Thoughts?

1 Like

IMO no need to separate things, but also let pre/after market trading. If you can’t close your position in the after hours while everybody’s dumping the asset viciously and the market opens the next day at -30%…that’d hurt even badly.

1 Like

Thanks for the reply!
Agreed on pretty much everything. In regards to your comments:
3.) I agree, I don’t like the idea of limited rebalancing times (once at the start and once end of day). Either farmers or bots would take advantage of the abrupt swings at those times.
4.) I was meaning in the case that, suppose a global premium exists: A treasury would take a percent of that UST causing the premium (removing it from the pool) which would reduce the premium outright. Then, if there ever became a global discount, these funds would be used to buy mAsset. Rinse repeat for the other way.
5.) I’m not sure a time based fee that increases would be ideal. If it scales higher over time, then it incentivizes users to exit sooner rather than later, which helps traders, but not those who LP. If you have it the other way, it hurts traders, but helps LP. Thus my italicized idea of having short-LP and short-only where only short-LP has a closure fee where short-only can close at any time; each method has its own audience in such a case.
6.) I had similar concerns, but figured I’d throw it out there for discussion; only saving grace would be single-sided LP in this case. Definitely want to think this one out more to see if it can be made to be effective. This wouldn’t be the sole lp method, just a more risk-averse, active LP method.

LP dominance/delta-rebalance comment:
This is another idea that’s been thrown around as an intermediate solution between a highly oracle reliant pool (multiplex) and a normal AMM.

1 Like

Yeah, I kind of realized I overcomplicated things after the fact lol. Decided just to leave it~
Honestly could just disable extended hours liquidations but continue to allow minting/burning and it’d accomplish the same thing. Not sure if it’d cause insolvency given that usually, if you’d be liquidated in off-hours, you’d also be liquidated on market-open, so long as the off-hours session didn’t have any huge spike in miscellaneous trading. It’d just filter out those erroneous off-hour liquidations.

1 Like

To the fees:
What about to set up fixed LP entry (or withdrawal) fee for Multiplex pool? It could be lower for mAsset-UST pair and higher for single asset position as it does not have IL risk.
Entry or withdrawal fee would motivate LP providers to provide liquidity longer and not to withdraw on every decline of APR rewards. Plus it could be another source of income for MIR holders or it could allow to lower closing fee for shorters.

4.) I thought something similar, but your take is even better.
5.) I wasn’t too concrete, adding that the 1,5% fee would be the cap for longer periods, just like it is now - in this way the short term traders would also be served and lured into the protocol, and also the liquidity providers with longer time horizon would still get the same profits as now. If not even this way, I think somehow we must differentiate the lower/higher position opening fee while also encourage people to not just use Mirror like a yield farming protocol.

Regarding pre/after hours: I’m not sure how it would effect the system if the users could still mint/burn mAssets in order to prevent their liquidation in those timeframes, but given there’d be no need to rebalance the prices through that liquidation process, maybe it wouldn’t fuck up the system.

Btw, I’ll gladly help with the sorting out of the positions, if you know where to find data about it. The other day I tried to search in this topic but couldn’t find anything meaningfully useful.

As I see it, the UST-mAsset LP providers are already motivated to hold for longer periods given the 1.5% fee currently active, if there’d be no change in that fee, they’d continue to provide liquidity as practically there’s no change in their profitability. They’d still want to get the yields in the longer run from trading fees and MIR rewards, we just need to ensure that a relatively high closing fee prevent them from getting in-out frequently. Lowering the 1.5% for them could cause unwanted day-to-day LP fluctuations.

Therefore by reworking the CDP close fee structure it seems to me that the targeted audience could only be the directional, short term traders in order to keep the current level of liquidity in the pool(s). The directional short term traders cannot rely on yield farming, and the high closing fee makes it really hard to profit from price swings while maintaining significantly higher risk. So effectively the new fee structure should aim to differentiate these two type of users.

I think this can be solved by eliminating liquidations based on pre/after market oracle reporting. I’m unsure if eliminating minting would be an issue or if this is needless complexity that a proposed insurance fund would cover. (mFB being an example of being able to create an insolvent mint based on an aberrant, although correct, oracle price)

Correct me if I am wrong: If I buy mAsset by swapping on Terraswap and then I put mAsset-UST into Terraswap or Spectrum pool, I pay just Terra network (or Spectrum) fee. So the DN players are not paying any fee on long side to Mirror protocol.

1 Like

I checked it. So adding liquidity to LP pools could be either by buying the mAsset as you told or by borrowing the mAsset, this way creating a CDP and applying to the 1.5% closing fee (and ofc adding the UST too). Not sure tho that how are the two part split. Either way, I wouldn’t change the dynamics for the LP providers given it’s working well already, but by reworking the closing fee structure aiming especially at the trader community, we could expand the protocol’s user base.

Edit: Thinking about it now, it would be great to know the composition of the LP pools and checking how much of them getting in-out day by day and somehow target the mAsset buying long LP community with a fee. Tho setting up an entry/exit fee to the LP would also target the mAsset borrowers in the pool, and in this way they’d have to pay 2 fees

I do not understand this. If you are net borrower you are minting and you pay closing fee. If you are DN investor you are borrowing for short farming and buying for long farming. Theoretically you can borrow mAsset and put it into LP, but your position is not delta neutral then because you are 2x short and you hold just 1 mAsset on long side. I do not think much investors would borrow 2x and pay the fee 2x.

The LP providers are willing to pay entry/withdrawal fee only if they can get some added value over classic Teraswap pool. For example the Spectrum protocol applies following fees and people are willing to pay it:

  • ​Deposit Fee: 0.1%
  • Performance Fees. ​Vault Fee: 6% to SPEC stakers. ​Platform Fee: 1% to treasury. ​Controller Fee: 1% to cover gas cost and underlying services.
  • Withdrawal Fee: 0%

Added value in case of Multiplex pool can be:

  • no IL risk in case of singe asset
  • autocompouning?
  • autostaking rewards?
  • higher rewards than in classic Terraswap pool

As I am thinking about it, the LP fees are not so important issue.
But we should also think about improving MIR tokenomics as it seems to going down terribly. Falling MIR price errodes funds available for further development and generally it invokes inflation.

:slight_smile: Yes that’s one way to do it, but not the only way as you said it yourself. Not only buying mAsset-DN strategies can be profitable from longing LP-s. If you borrow the mAsset and longing LP as part of a DN strategy, then you anticipate that the market will trend down in the future and still maintaining a DN position (you don’t sell the borrowed mAsset in this case), meanwhile the collateral ratio on your CDP will move higher over time, therefore you can free up additional aUST on the way down and reinvest it further - this way you’re earning more APY than with the other DN strategy. I think more people are shorting this market than you’d imagine, and meanwhile getting the plus APY.

Sure, why would they risk their money in these LP-s? Significantly less IL risk compared to other protocols, not only in single asset pools but in the multiplex pool also (btw if using Spectrum, you effectively using 2 protocols, 2x the protocol risk) . As EuphoricBadger wrote in the original thread, there are multiple ways to implement reward allocation to the pools, without rewards who the heck would even stake their money in LPs? :smiley: Trading fees, UST and mAsset rewards as well as of course the MIR reward distribution can also be implemented, but finding the concrete reward distribution schematic is another topic.

Spectrum protocol is an autocompounder, it’s not in the same league, if Mirror changes, Spectrum needs to adjust to it if it want to offer this unique service for their users. Btw autocompounders are usually have higher protocol fees than the underlying, in this case you effectively pay Mirror’s and of course Spectrum’s fee for the plus service. The users pay the higher fee for the ‘higher quality service’ (more yield, more risk). If Mirror’s fees would be this high, no one would use it, the protocol has to be relatively cheap to get people into it.

I don’t think it’s worth dealing with MIR’s tokenomics. Everything goes down, that’s just how bear markets work, we cannot fix it with different tokenomics. The only meaningful way to care with MIR is to improve the protocol itself. If we manage to do that, than the token will thrive in the future.

I would vote in favor of funding development. Well done EuphoricBadger.

1 Like