✖️ [RFC] Add FEI to the mUSD basket composition

Add FEI to the mUSD basket; target 5%.

This proposal request the inclusion of FEI USD to the mUSD basket with a low initial composition of 5%. And as @Jeshli mentioned in discord, to even compete with USDT on it.

FEI protocol has a “Protocol Controlled Value” of $0.8b and sits at 240% Collateralization Ratio. Market cap of TRIBE (Governance token) is around $0.4b. You can read more about FEI on their official docs here

My personal believe is that 2022 will be the year of the decentralized stablecoins; and the more variety and diversity, the better.

Biggest protocols rely on fiat collateralized tokens like USDC or USDT (the later with not the best history of transparency); hence mUSD can act as a shield from the possibility of lose of peg, insolvency, government intervention, etc from those fiat backed tokens which currently constitute 47% of the mUSD basket.

FEI has proven itself to stay within peg since the initial hiccup early last year, and we should welcome new players with open arms.


  • Make the basket more decentralized
  • More assets to swap to/from
  • We already have a feederpool of mUSD/FEI. This could bring both projects closer.
  • Higher trading volume than sUSD (TODAY: $54m vs $34m) some potential here.


  • Relatively new project: greater risk?
  • Potential lose of peg again? There has been changes to the algos and it hasn’t happen again since the genesis.

I would like to get more opinions on this. I know I’m missing a ton of Pros and Cons, and would love to hear from you all.



Overcollateralized stables (FEI, MIM, LUSD and alUSD) are preferable to an undercollateralized stable (USDT). Although Frax is technically undercollateralized at around 80%, including the FXS value and the fact that CVX and [Redacted] are committed to forever locking would push it to potentially 160% collateralized. All of these stable coins are superior to USDT except in terms of CEX usability and real world redemption. Allocating a small portion of the stable basket to be voted on – along with a signal that the flexible allocation may increase in the future – would give protocols (Tribe, Abracadabra, Alchemix, and Frax) reason to buy and hold MTA. The introduces a novel stable swap set which would be distinctive from what Curve provides. It would also introduce new revenue generating opportunities. For instance, one sided staking of Frax, FEI, or LUSD earns 18%, 16%, or 19% APR in TOKE right now. For the first vote, it should likely be a winner take all. But, the various voting systems in place have given examples of how to run the follow-up votes where the votes are cumulative across rounds.


I think the direction is really good and we need to look more into assets that are decentralised and function in a different way than the assets currently basket. Additionally, this would more options to earn yield with different assets.

However, there are a few things that we need to consider:

  • The current contracts don’t support target weights. The stableswap invariant is for equal-weighted assets.

  • The Addition of an Asset is not simply to call a function and add it to the basket. It would actually require an upgrade of the contracts. It’s behind a proxy, so maybe just upgrading the implementation would suffice, but that of itself is no simple task. I am not sure how manageable that is.

  • Liquidity in FEI would be needed to match the current TVL of a single asset, otherwise, it might get below the limits or create a highly imbalanced basket that would be easy to arbitrage and extract value from.

Happy to get some feedback on this from someone who is even deeper familiar with the smart contracts. @naddison

Alternatively, I would think much more positively of creating a new basket of decentralised stablecoins. I would be much lower risk for the current basket and still add value to the ecosystem.

1 Like

I agree with @dimsome here with the alternative approach.

As more protocol treasuries choose to use mUSD, it may be better to have two baskets for risk reduction. mUSD is an ideal basket to hold to shield against a lot of issues an underlying stable may have, but there are two classes of risks here central stables and dex stables.

Highly supportive of a secondary basket. e.g. Today Olympus DAO will issue bonds based on assets in treasury. Since their treasury holds a lot of DAI, they are now exploring more bonds in LUSD etc. If they instead just hold the mUSD which is a basket weighted automatically, they dont need to offer individual bonds and this new dmUSD (dex musd basket) does it for them.

Some good reading on this is OIP-32 on Olympus forums (sorry it doesnt let me add a link):

1 Like

Wouldn’t a second mAsset (mdUSD?, dmUSD?) require a separate save? That’d dilute the savings right? Then it’d be too confusing for people when depositing, would have to chose on which vault, etc to add “ultimately just dollars” on their minds.

Very true @juan it will surely dilute. This will be very useful for treasuries but individual folks may indeed get confused.

1 Like

Great input here, and a topic that comes up repeatedly in discussions on the forum and on Discord alike.

In my opinion, if we were to add FEI to the basket, we should do so fully and by so doing, completely swap out a more risky asset like USDT to take the place of FEI in the Feeder Pools and vice versa. We would arguably be creating a better mUSD and mUSD ecosystem with this process, moving risk away from the basket and into the feeder pools, as per their original intention.

Another positive side-effect of this would be that FEI generally generates much healthier returns and yields in the ecosystem compared to USDT, and we set a certain standard for what a decentralized basket of stablecoins should look like. In my opinion, the basket assets should be the most trusted and safe assets the entire DeFi ecosystem has to offer, and this would be a healthy step to achieve this goal.

Of course, a lot of work is involved in making this happen, but we have done swaps of this nature before, and it’s something that can happen without anyone necessarily needing to swap out their mUSD for a different mUSD, like is the case with other approaches.

While we are on that topic, at one stage we could also consider thinking of a worthy replacement for USDC, since it suffers similar issues and is arguably better placed in a feeder pool to protect Save users from coming stablecoin legislations in the US and other threats of that nature.


@mZeroNine I’m really in sync with your last statements. And must agree that the purpuse of mUSD is stability in its ecosystem.

  1. We could make mUSD based on decentralized assets only, and create feeder pools mUSD>“decentrailizedUSDToken” for easy swapping, fees, etc. We should still allow deposits from any stable(if liq. available), but with extra swap and therefore cost. But having an easy of use UI is a must as well.
  2. Given what @dimsome said (might need a contract upgrade), this could be a good opportunity that we could leverage to swap USDT and as well as USDC out for two other stables (Top Stablecoin Tokens by Market Capitalization | CoinMarketCap, FRAX?). This would require one less upgrade when we decide to move forward with the next token.

NOTE: We have to do something about this:

It’s supposed to be DeFi. It cant be dominated by collateralized assets.

Can I be the one to say I kind of like the centralized stable coins? I want as few steps as possible to convert my crypto into fiat.

That said I am very interested in the collateralized stable coins and even algorithmic stables coins, but I don’t feel I have a grasp of how safe they are or even how they work, let alone how the groups that govern then may change them in the future.

To me they both represent the same risk in many ways, except one is the devil I know. Just my 2 unhelpful cents. I am 100% for getting rid of USDT.

1 Like

Great discussion here.

While it’s useful to debate the merits of individuals stablecoins, the bigger questions that are highlighted for me are:

1/ Are there two distinct classes of stablecoins that offer a significant enough difference in risk profile or use-case that our goal should be to create two different baskets? If so, how can we ensure that the added complexity does not detract from the UX. My feeling is that a single basket for mUSD might be preferable given our focus on creating a simplified savings product.

2/ It seems clear to me that on a longer time horizon, we will see changes in which stablecoins are the most relevant and trusted. Can we upgrade our contracts to allow baskets to evolve over time in a more natural way? Or would we prefer to make baskets immutable and continually deploy new versions to include new stablecoins (which creates a switching cost and added complexity)? If we wanted to allow evolution of baskets, could we explore new ways of adjusting target weights? Could we use a ‘dials’ system or even some sort of free market mechanism to adjust weights over time?


@Ottermelon: Can I be the one to say I kind of like the centralized stable coins? I want as few steps as possible to convert my crypto into fiat.

It is true that there are more off-ramps on these coins, but we can offer an exit to any of the feeder pool tokens (even from the vault) to mitigate this.

@soulsby: Are there two distinct classes of stablecoins that offer a significant enough difference in risk profile or use-case that our goal should be to create two different baskets?

I don’t think the difference is big enough to split the assets into two categories. It is there, but it’s a technical difference that the “regular” user might not care as much.

@soulsby: Can we upgrade our contracts to allow baskets to evolve over time in a more natural way?

I like where this is going. When @dimsome wrote about the upgrade requirement I was a bit surprised TBH. I have to say that this is a great opportunity to take and try to research possible solutions for a dynamic/adjustable basket. But it’d take months and I think it’s better to do FEI now whilst the solution is engineered.

Again, I don’t want to be misunderstood: I am strictly against changing the current mUSD basket. Not only is that fairly cumbersome, the upgrade of the contracts behind the proxy is somewhat limited, but it’s also risky. I don’t even know if the upgrade would achieve that.

Additionally, anyone that integrates and uses mUSD expects certain stability. Someone using mUSD would want to have the same composition so they can withdraw back to the stablecoin that they initially deposited.

Someone that integrates Save and uses a certain stable to do so, would expect his application still to work in the future.

This is a great suggestion! I think some sort of stability with these assets is always good. But on the other hand, having the basket naturally evolve is also a great to reflect the current market. I just wonder how in detail the swap and math functions would work. This is no easy task to solve.

Again, please see my comments above. Upgrades are limited. It does not allow you to completely change the contract.

@dimsome sorry I phrased it horribly. I didn’t mean to say that you agree with the proposal, but instead, to emphasize that this change requires a upgrade. (It’s adds more complexity to it).

The thought behind that last comment was to merge this “problem” with @soulsby idea and so discuss the possibility of creating another proposal on this “naturally evolving basket”, and whether or not this proposal should be halted until then so FEI becomes part of the new basket dynamically, or on the other hand, continue with this discussion :slight_smile: Sorry about the confusion.

@juan Ah ok, I see, thanks for clarifying. I misunderstood then. :slight_smile:

This idea of the dynamic meta USD (dmUSD) is very intriguing. I fear though that it might be quite complicated to achieve. The smart contract has to do a lot of things at that point. Additionally, the formulas to achieve this are not straightforward. I think there was a hard problem to solve Stableswap AMM invariant with having weights that are on top of it adjustable. I am no mathematician, not even sure it’s possible.

On the other hand:

  • it could reflect more closely the stablecoin USD market and be a true meta asset that reflects the market.
  • This asset could also really reduce the risk for holders since the weight of each would only be a smaller fraction and depegging would have a smaller impact on the whole basket.
  • It could generate a DeFi Libor of sorts.

Sounds promising, but not easy.


Great discussion here, something I’ve also considered a lot. Glad to see it being discussed seriously.

As @mZeroNine and others have suggested, replacing USDT and USDC (though obviously they aren’t equal, let’s treat them as such for the sake of argument) with fully non-custodial assets in a gradual way is an achievable task.

The mUSD Metapool on Curve provides a huge source of liquidity with USDC and USDT. Though it’s non-native liquidity, improving the quality underlying assets in a tangible way might outweigh the loss of swap fees. It could also help provide more sustainable yield sources.

Of course, we also have CEXes like mUSD on Coinbase to provide more on/off-ramps with fiat; further reducing the need for our own on/off ramps in the two largest stablecoins.

I don’t think we’ve ever modelled RAI as any thing other than a feeder pool, i.e. a 2-asset AMM rather than the current n-asset AMM (n=4 but can change). FEI (and others such as LUSD) obviously do not share that issue.


Wow, thanks for this very fruitful discussion. I think we can pinpoint 3 options down. Please correct me if I am wrong:

  1. Change the current mUSD basket
  2. Leave the mUSD basket as is, but create a new basket with different assets
    2.1 Same mAsset Contract
    2.2 Improve mAsset Contract
  3. Do nothing (always an option :slight_smile: )

In either case, the conversation shifted from the initial topic. Might be good to open a new thread? What do you think @juan

1 Like

Would a new basket of mUSD have fungibility with the existing basket, given it is backed by different assets? After all, it should ~== $1 in both cases, right?

Given it would be a separate contract address, I am concerned we would fragment our liquidity.

Agreed with this, all the more reason to ween off centralized stables.

I was thinking exactly this.


I have solved the stable swap calculation for arbitrary weights. I can share immediately or adapt the MIP-7 code to show it works.

1 Like

Hi everyone,

seems like this discussion went into stalemate and hasn’t progressed much lately due to very different opinions regarding the basket and ideas around it.

With the shift to a governance call approach to tackle these kind of stalemate positions, I would propose that we add this RFC to the next governance call agenda (exact date TBC).

The following parts would be discussed and resolved in the call to find consensus and move this RFC forward:

1a.) Whether or not to keep to one mUSD derivative and change the basket composition (exchange USDT/USDC for FEI and alter the FEI Feeder Pool to USDT/USDC)

1b.) Whether or not to keep to one mUSD derivative and change the current basket as per this RFC (add FEI to the basket and do not alter the rest of the basket, nor the feeder pools)

2.) Alternatively, to create a separate 2nd mUSD derivative based on different basket assets than the “original” mUSD (will require a separate RFC but resolve this)

3.) Drop the topic entirely

If you have any additional questions that you would like to see happen for this particular RFC, then please post them here before the 1st of March 2022 so we can add it to the call without running into a bottleneck.


As discussed in the Governance Call yesterday, we’ll be closing this RFC for now, and re-consider a potential basket swap for mUSD once mStable v2 has been rolled out and it be still something the community is passionate about :innocent:

1 Like