Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paragraph on Market Dynamics (Part II) #160

Merged
22 changes: 19 additions & 3 deletions CGPs/cgp-0060.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,17 @@ As an interim solution to offer cUSD-USDC liquidity short term, before GigaMento
</p>
*depending on how the pool is utilized, governance might add more liquidity in the future via additional governance proposals until GigaMento comes into effect, see [Rebalancing](#rebalancing-16).

## Market Dynamics and Reserve Balance

## Arbitrage and DEX Competition
The setup of the StableSwap pool is competitive. The transactions fee is on a similar level as for stable pairs on other DEXs and additionally it uses a constant sum market making function. As a consequence, especially larger transactions will be cheaper with the constant sum StableSwap pool.

Arbitrageurs will take advantage of the arbitrage opportunity. In the current market situation (cUSD/USDC price at ~0.995 ), arbitrageurs will buy cUSD below 1 USD in the market and sell it to the StableSwap pool for a cUSD/USDC price of 1. Ignoring fees and slippage, the maximal profit they can earn if cUSD/USD remains at 1 is

$$ 5\,000\,000 (1-0.995) = 25\,000\mathrm{\ USDCet} \ .$$

## Reserve Balance
As long as USDC/USD and cUSD/USD stay a 1, the reserve will always be able to unwind without a net loss - irrespective of whether arbitrageurs take arbitrage opportunities or not. This is because exchanges happen 1:1 and therefore changes in reserve debt and changes in reserve collateral cancel each other out.
## Deployment

### StableSwap Pool
Expand All @@ -36,7 +47,7 @@ When executed, the CGP should:
* Deposit cUSD + USDC (Wormhole) to the pool

<p align="center">
<img src="https://global.discourse-cdn.com/standard11/uploads/celo/optimized/2X/a/af3ea690f9e776892362889320114c10b38dd910_2_1380x464.jpeg" width=70%>
<img src="https://global.discourse-cdn.com/standard11/uploads/celo/optimized/2X/a/af3ea690f9e776892362889320114c10b38dd910_2_1380x464.jpeg" width=52.5%>
</p>
#### Minting cUSD to Governance

Expand All @@ -56,7 +67,7 @@ For the addLiquidity function call on the pool to succeed, the pool needs the ap
<p align="center">
<img src="https://global.discourse-cdn.com/standard11/uploads/celo/optimized/2X/5/5d8e9f77d0b1674b1caada274b0502694458f7b0_2_1380x504.jpeg" width=70%>
</p>
**For the more technically savvy, here’s an [example of a transaction](https://github.com/celo-org/celo-monorepo/blob/bowd/cusd-usdc-liquidity-pool/packages/protocol/test-sol/integration/PremintExample.t.sol#L70-L109) simulated on top of a mainnet fork which adds cUSD and USDC via a CGP to the existing cUSD-USDC Mobius pool.**
**For the more technically savvy, here is an [example of a transaction](https://github.com/celo-org/celo-monorepo/blob/bowd/cusd-usdc-liquidity-pool/packages/protocol/test-sol/integration/PremintExample.t.sol#L70-L109) simulated on top of a mainnet fork which adds cUSD and USDC via a CGP to the existing cUSD-USDC Mobius pool.**

### Deployment Timing

Expand Down Expand Up @@ -191,7 +202,7 @@ If the pool gets to be mostly USDC, governance would potentially want to top up
If the pool gets to be mostly cUSD, new CGPs can be submitted to add additional USDC. This new CGP would be similar to the Deployment one, but without the cUSD minting part:

<p align="center">
<img src="https://global.discourse-cdn.com/standard11/uploads/celo/optimized/2X/1/12151220770bf279c276a94efca707f1d0de852e_2_624x500.jpeg" width=70%>
<img src="https://global.discourse-cdn.com/standard11/uploads/celo/optimized/2X/1/12151220770bf279c276a94efca707f1d0de852e_2_624x500.jpeg" width=35%>
</p>

<p align="center">
Expand Down Expand Up @@ -256,6 +267,11 @@ The setup of the liquidity pool is based on the assumption that the cUSD/USDC pr

The cUSD/USDCet pool will offer cUSD (and USDCet) at an incorrect price that is either higher (cUSD/USDCet < 1) or lower (cUSD/USDCet > 1) than the market price. The availability of expensive/cheap liquidity can have a price impact that is undesirable for cUSD as it is purely caused by a USDCet price deviation.


## Market Interference
Whenever arbitrageurs have matched the StableSwap cUSD/USDCe price with the price on other pools, most users will trade with the reserve StableSwap pool since it has lower fees and slippage especially for larger trades. If DEX routers include the StableSwap pool, this shifts trading volume towards the StableSwap pool.
rcroessmann marked this conversation as resolved.
Show resolved Hide resolved
In other words DEXs have to compete with reserve liquidity. This is a dynamic which we would like to avoid in general. In the current situation we believe that the benefit for the entire Celo ecosystem outweighs the risk of a competitive market intervention.
rcroessmann marked this conversation as resolved.
Show resolved Hide resolved

# Useful Links

* [Related forum post](https://forum.celo.org/t/discussion-cgp-60-governance-owned-cusd-usdc-liquidity/4036)
Expand Down