Migrate sUSD pool to mStable

For a period of several weeks a premium on sUSD is observed. There are initiatives such as lowering the c-ratio that may reduce the premium by increasing the supply of sUSD minted by stakers.

There is a root cause however from which the premium is originating. First we must look at where there is the most sUSD liquidity: the Curve pool.

There are more USDC and USDT than sUSD in the dedicated sUSD Curve Pool, frequently by a significant multiple. Presently sUSD comprises less than 10% of the sUSD pool. Screen Shot 2020-08-19 at 8.56.05 AM

The sUSD pool on Curve is imbalanced as a result and leading to a premium for sUSD relative to its peer stablecoins.


Unless changes are made to Curve that limit the size of any subtotal in the pool, there is little reason to believe the sUSD premium will subside.

In the absence of a change to Curve itself, mStable presents a viable alternative as the primary pool with the deepest sUSD liquidity. mStable is a ready-to-go, off-the-shelf solution that is tailor made for the present situation where an imbalanced sUSD pool persists.

“mStable employs a straight line bonding curve between bASSETS, meaning that anyone can trade these underlying stablecoins at a 1:1 ratio,” the docs for mStable state.

Unlike Curve, mStable enables transactions from USDC to sUSD and vice versa at a 1:1 ratio. This is achieved by setting maximum weights for each base asset in the mStable pool.

The underweightage of sUSD relative to other stablecoins in the Curve pool is the source of the premium. Migrating to mStable as the deepest pool of liquidity for the sUSD solves this problem.

One corollary to this solution is reducing Curve Pool incentives for sUSD liquidity providers to 0 as soon as possible. Another corollary is introducing incentives to provide liquidity to the mStable sUSD pool on a trial basis for 4 weeks and potentially extending such an incentive program further.

Shell Protocol is nearly going to ship, and we can support arbitrary weights. We could have an sUSD pool with three other tokens, putting sUSD at 50% and the other three at 16.6%. Or 60% with two others at 10% and one at 20%, for instance.

We also support halt checks, to mitigate risk. So the more you add does not necessarily mean the more you are at risk to lose. You’ll lose some in the case one of the coins loses its peg, that’s unavoidable, but it’s a cappable parameter in our pools.

We would be keen to set something like this up for Synthetix.

1 Like

To clarify, we differ from mStable in an important respect - we are geared towards market making.

Because mStable will always swap a token at a 1:1 rate, that means liquidity will always be lacking for whatever the more valuable token is at that moment. Always trading the reserves at a 1:1 parity means that it can not facilitate markets very well.

In order to avoid that, there needs to be a concept of slippage. With slippage included, there is always some liquidity available to make a trade. This allows for a much more diverse behavior.

If you are at 1:1 with no slippage, then the only people who will be able to use the pools will be arbitrage traders. The moment there is a market movement, it isn’t unlikely that an arbitrage trader will make an enormous trade first before anyone else can access the fresh liquidity. Once that happens, there are no more trades that can be reasonably made in the pool until the market makes another move.

With slippage, this problem goes away. Depending on the weighting of the reserves, deep liquidity can be designed. But only if you have slippage. In Shell Protocol, we facilitate low slippage, deep on chain liquidity. This is a highly programmable surface with Shell.

Details will be out soon when we release our white paper, and soon after that we will launch our first pool.

2 Likes

I think that sUSD might benefit from having a much lower weight in the pool. This should result in prices being closer to 1:1 parity with custodial stablecoins like USDC and USDT which have a much larger and more elastic supply. 15-20% weighting for sUSD seems good to me.

We launched today - https://twitter.com/ShellProtocol/status/1313195881231872001

Our first pool is 10% SUSD with 30% of USDT, USDC and Dai.