Mirror V2 Updates

Last Updated: 2021/05/28

Overview

Mirror has seen tremendous growth over the last few months that can be seen from the 2B+ UST that is currently locked within the protocol as well as continuous increases in liquidity and volume growth. That being said, we want to keep pushing the boundaries of what can be done on Mirror in V2. We have also been looking at all the user feedback (even if we don’t directly reply) and have seen lots of questions about the V2 contents and timeline, so this post will serve as an update to Do’s post here as well as a comprehensive document outlining what you should be aware of for the next batch of releases.

The estimated timeline for V2 is early May.


1. Pre-IPO Assets

As many of you may have heard, Mirror will offer a decentralized method to allow users to mint, trade, and LP mAssets before official exchange listing. This will work in the following manner:

  1. A company announces its IPO and goes through the process with the SEC in which a red-herring document (SEC Form S-1) with a price estimate is published.
  2. Mirror users will be able to submit a poll to list a Pre-IPO asset with a fixed minting price and minting period (in addition to the typical mint parameters).
  3. During the minting period, any user is able to mint the asset at the fixed price. Once the minting period ends, only trading and pool/staking will be available.
  4. Trading and Pool/Staking will be available until the asset officially IPOs.
  5. Once the asset IPOs, all actions will be stopped for mPre-IPO, and users will be able to go through with the deprecation/migration process where any person holding an mPre-IPO asset can burn it against any CDP to receive UST at the first trading price in the underlying market.
  6. This process will go hand-in-hand with the mPost-IPO asset being immediately whitelisted.

2. Governance Participation and Incentivization

We have seen that it has been relatively difficult to pass quorum for polls in many cases despite the relatively high number of MIR staked in governance. We want to revise the governance reward incentive structure so that users who actively vote in polls receive a greater share of the governance MIR rewards. The structure will work as follows:

  1. Suppose that T MIR will be distributed to the governance contract in a given block.
  2. Half will be distributed as currently to all stakers, and half will be directed to those who have voted.
  3. More specifically, if there are n on-going polls, then each poll will be allocated T/(2n) MIR. Then if there are k_n MIR utilized for voting in poll n, each MIR used to vote in poll n will receive T/(2n*k_n) MIR (in addition to the other half that goes to all stakers).
  4. We do not want to users to be forced into making an un-educated vote, so we will be adding an Abstain vote in addition to the Yes and No choices.

3. Governance Poll Quorum

Another problem with governance is that polls often sway between hitting the 10% quorum and dropping down to 9.99% due to more MIR being staked in governance. To remedy this problem, we will be implementing the same structure currently utilized in Anchor Protocol’s governance.

  • The total amount of staked MIR can be snapshotted to the poll within a time window of Snapshot Period before the poll’s end. This value is used to calculate the poll’s quorum.
  • Any one can call the above OR if any user votes during the snapshot period, a snapshot will be automatically taken.

The above should stop the unexpected movement of passing/failing quorum.

4. New Collaterals

As a way of allowing for greater composability within the Mirror and general Terra ecosystem, we will be adding new collateral types for minting.

  • MIR, LUNA, ANC, bLUNA, aUST will be allowed as collaterals.
  • When utilizing volatile collateral types (ie. all of the above except aUST), there will be an additional collateral premium (ie if you have 100 UST worth of MIR, it would be counted as <100 UST when utilized for minting).
  • To retrieve accurate prices for all the collaterals, we will be adding an additional collateral price oracle feeder. For cases of derivates with a 1-to-1 conversion rate (ignoring time discounting) such as bLuna <> Luna and aUST <> UST, we assume equivalency we will use prices from Terraswap.

This allows for a variety of new use cases of existing ecosystem assets as well as allow for:

  • Use aUST to mint assets so that the mAsset essentially accrues interest (interest-bearing assets)
  • Variable exposure for minting (ex. minted mAsset can perhaps be dynamically hedged with the underlying collateral)

We will shortly also update the contracts such that multi-collateral minting will be available (mix-and-match collaterals for minting).

5. ‘Mint/Short’ LP Token

During the earlier stages of the protocol, many users were seeing that the mAsset had a larger price premium over the oracle price. While some of this may have been influenced by a confluence of factors such as the sudden launch of the protocol or increases in demand for UST, a large reason for the premium was the demand for the high-yields of mAsset-UST LP staking. The problem was further exacerbated by the fact that buying at a premium was still more capital efficient than minting the asset and then LPing.

To remedy this problem, we will be introducing a new minting and inflationary reward distribution structure. Note that this new minting (let’s call it ‘short minting’) procedure will co-exist with the existing minting procedure (we will need the current procedure to be able to initially set the mAsset-UST Terraswap pool prices).

The aim of this process is to not only lower the premiums, but also adjust the dynamics between buying -> LP and mint -> LP. The process is as follows:

  1. When opening a mint position, the corresponding mAsset as well as an equal amount of non-tradable ‘short’ LP tokens, sLP, are created.
  2. The mAssets are automatically sold to Terraswap with a user-set slippage control (if slippage control comes into effect, mint transaction fails) for UST. Thus the user should receive sLP and UST.
  3. When a minter wants to close the position, an equivalent amount of mAsset and sLP must be burned to receive the collateral.
  4. The liquidation process follows as before with the exception that the corresponding amount of sLP are automatically burned as well.

sLP Token properties

  • Any person with accredited short tokens may immediately utilize it to stake in the corresponding sLP staking pool.
  • The division of MIR tokens between mAsset-UST pool and sLP is a function of premium , where premium is the percent premium between the the Terraswap price and oracle price. That is to say, premium = ( price_terraswap - price_oracle ) / price_oracle.
  • When premiumpremium_tolerance, the fraction of rewards distributed to mAsset-UST LPers and sLP stakers will be set as 8 to 2 per mAsset. When premium > premium_tolerance, the ratio changes to 6 to 4. These values can be further adjusted in governance. This rule applies to each mAsset separately.
  • The short reward ratio (per asset) will now be defined by a piecewise continuous function (capped at a maximum of 40%). The rough percentages are as follows:

In addition, the UST received from short minting will be locked for lockup_period. After which, the UST can be claimed. If the whole CDP is closed (either intentionally or liquidated) during the lockup period, collateral as well as the locked up UST is immediately given back to the minter. The total UST will be locked up for the full period if a partial closure happens.

6. Tapering Uniswap MIR Incentives (TBD)

We will be looking into either decreasing and/or migrating the MIR inflationary rewards away from Uniswap. While we have seen success in bringing Ethereum-based DeFi participants into the Terra ecosystem with the 50-50 Terra-Ethereum MIR reward distribution, there is actually very little trading being done on Uniswap. We plan to temporarily move these MIR into the community pool, where the community can deliberate new MIR reward allocation schemes (perhaps by trading volume, liquidity, etc etc). Note this does not mean that ERC-20 support will be withdrawn.

*Further definitive announcements will be made at a later date.


In other news,

  • Wormhole, a decentralized bridge, will be replacing Shuttle. Further instructions about the migration to come at a later date.
  • We will be revamping the web-app to accommodate for the new changes in V2.
  • The Chainlink team has been working on integration with Terra so that users may vote to use Chainlink’s price feeders as well.
  • V2 smart contracts will be audited by the Cryptonics team.

Let us know your thoughts and feedbacks below!

- Terra Research & Mirror Product Team -

(cc. @dokwon @jeelimm @Michael @alex @sim @yun @AG_1000)

28 Likes

I love everything about this! Very interesting mechanics with the short mining, never even crossed my mind as an option. Great work and creative problem solving as usual!

4 Likes

Really excited to see aUST as a collateral type.

Question… is it feasible longer term for aUST to also be part of trading pair in an LP? This would help boost the profitability of LPs by them effectively lending out their untapped liquidity. Alpha Homora does this with their ALPHA coin LPs. If a user comes to purchase a stock with regular UST, behind the scenes it converts their UST to aUST right before the swap so they can swap with the LP.

4 Likes

Some news regarding the Oracle Band Protocol integration.

Hey @Sihyeok

Back in this post from February, we briefly discussed strategies on how to keep Terraswap’s mAsset premiums and discounts to a minimum.

" * When premiumpremium_tolerance , the fraction of rewards distributed to mAsset-UST LPers and sLP stakers will be set as 8 to 2 per mAsset. When premium > premium_tolerance , the ratio changes to 6 to 4. These values can be further adjusted in governance. This rule applies to each mAsset separately."

There’s a potential problem with this strategy. By using a formula for setting staking rewards with discrete values dictating whether we’re in “Regime A” rewards (8-2) or “Regime B” rewards (6-4), you may be opening yourself up to having this gamed. Instead of having a single discrete value determine how rewards will be distributed, could this instead be a continuous function in which a minter’s reward share increases significantly (perhaps exponentially) as the premium increases and a minter’s reward share decreases significantly as the discount increases?

You’re right - I wanted to draw up a curve, but due to the busy scheduling, we will first take a look at how this mechanism will work. Once we get some empirical results, we can look to make this a bit more sophisticated.

I seem to have forgotten to mention that this flipping scheme will happen at maximum once every specified time period so as to stop the unstable behavior when premium = premium_tolerance + ε. I have to double check but I believe it’s once per hour. This should stop any unwanted behavior.

As a side note, perhaps instead of the current heaveside function, we can homotope it to a sigmoid function.

1 Like

Do you think that’s something that will have to wait for a v3 of Mirror? Also, the use of aUST as collateral is pretty transformational to Mirror. Will the 20% yield from aUST go entirely to the minter or will some of that yield be given to mAsset holders?

I actually revised the framework yesterday, so that a function will define the reward ratio :smiley: We will have to see if this will be directly implementable in V2 (dependent on dev timelines).

The 20% yield for now would go to the minters, as the minters have to directly go to Anchor to get aUST and then use it in Mirror. In the future, we can have all UST be deposited into Anchor for aUST through the use of a smart contract (in which case we can dynamically split the yields between various parties).

Can this step be made optional through a checkbox or other mechanism? In the case of running long/short, we will want to hang on to the mAsset. Having this as an optional item would eliminate a step and save a little bit in fees.

Selling has to happen in this case. If you don’t want to sell your assets when minting, you should utilize the current minting method.

Shorting is an optional step. You can simply just mint (borrow) mAssets when opening a position.

But it would mean that no sLP token will be generated for you to stake.

@Sihyeok @jeelimm - Okay got the new process. This makes sense now. Thanks.

1 Like

Do you have any Korean Version explanation for Mirror Finance?
한국어로 된 Mirror Finance 설명서는 없나요? 투자를 하고 싶은데, 한글로 된 것이 없어서 어렵습니다. 혹시 있으면 메일로 보내주시면 안될까요? 부탁 드리겠습니다.

Perhaps making the distribution ratio 10 to 0 in case the mAsset price goes too far below the oracle price should be considered? That way peg stability will be promoted both during upwards deviation and downwards deviation.

This part has been revised so that the transition is smooth wrt. premiums. Will update the post soon!

The above as been amended to the original post.

3 Likes

For Mint/Short LP token, why should we automatically sell mAsset? For people, who would like to lock profit/loss, may would like stake mAsset to pool rather than get UST.

The point is to lower the premium on mAssets when they get sufficiently high by providing increasing incentives to users to mint and then short (hence they have to sell the mAsset).

If you want to mint and then LP, you can do so with the current existing mint mechanism.