Proposal: Using curve.fi metapools for synths pegged to ERC20 tokens

For synths that are pegged to ERC20 tokens (e. g. YD products), it may make sense to use a curve.fi metapool:

A metapool pairs a coin against the LP token of another pool. This other pool is referred to as the “base pool”. By using LP tokens, metapools allow swaps against any asset within their base pool, without diluting the base pool’s liquidity.

The factory allows deployment of metapools that use the following base pools:

It is possible to enable additional base pools through a DAO vote.

Pros:

  • Ability to trade the synth vs any underlying asset of the curve.fi native pool (a YD-3pool metapool would let you trade YD vs USDC/DAI/USDT)
  • Low slippage which is quite important for users looking to sell the synth to buy it back later
  • CRV rewards
  • Easier UMA rewards distribution leveraging LiquidityGaugeV2 (The Curve DAO: Liquidity Gauges and Minting CRV — Curve 1.0.0 documentation)
  • Synth exposure (curve.fi doesnt have that many pools so the pool would be clearly visible in the front page with it’s apy in the public attracting liq miners)

Cons:

  • I dont know, there are probably some downsides

This proposal goes in tandem with Proposal: Unifying YD style synths into one multi collateralized synth which aims to create a YD synth backed by multiple collateral in replacement of the current multiple YDs.

This is a great idea as other projects have also utilized curve pools successfully. Question tho… would existing UX be removed completely or would users still have option to keep their YD outside of Curve?

Do I understand it is the same as Curve pool factory at https://crv.finance/ as documented in FAQ?

I was thinking that indeed this could be good idea to use it for stable coin synth LM programs as Curve formula is more appropriate for high correlation pairs, but recall that someone on Discord raised the issue of higher gas fees. Now I checked TrueUSD pool and fees seem similar to Balancer unless you add/remove all 3pool coins.

One issue though I see is that destroying Curve pools once deployed is not possible - it means that there would be increasing number of dead pools for each EMP after its expiration. I am also not sure how Curve AMM formula will handle synths post expiration as they would become pegged to EMP collateral at settlement price. So from this perspective maybe its better idea to use Curve for perpetual synths or at least long term EMPs?

One issue though I see is that destroying Curve pools once deployed is not possible - it means that there would be increasing number of dead pools for each EMP after its expiration. I am also not sure how Curve AMM formula will handle synths post expiration as they would become pegged to EMP collateral at settlement price.

Is there a way to use Balancer’s pools to create a perpetual pool where we manually update the synthetic token that trades against a stablecoin? For example, today it could be USDC/YD-JUN2021 and in June it could be USDC/YD-SEP2021.

1 Like

Interesting. In theory, the amplification A factor would have to be declined drastically after expiry because at that point the peg is not that strong as before expiry. If you dont do that, then the curve will keep a 1:1 price longer than it should when the pool ratios start to move around.
So in that scenario, curve formulae are a curse rather than a blessing, because you want trades to impact price harder (a la Uniswap) than when peg is strong. In the end, you can always arb the pool ratios, but a Curve pool with a high A value will require huge volume imbalance before the price shifts.

Yes! Great idea, that’s what most index tokens are doing.

You can use a BSP (https://docs.balancer.finance/smart-contracts/smart-pools/concepts) to adjust weights and even add/remove tokens on the fly. The updates can be done at once or gradually by reducing the old token weight to 0 and increasing the new token weight from 0 to the desired final weight over time.

Cool, did not know it is possible!
Sure, it would not help synth sponsors who still have to roll over, but it could be useful for other use cases - e.g. taking long/short positions. So during roll over period both synths could be in the pool and if LPs provide sufficient liquidity, then other users could easily swap expiring synths for new ones.