Hello community,
At cLabs we were thinking about what can be built for enabling large mints of stables on Celo. Given that Granda Mento was deployed but has never really been used, we iterated from there and would now want to gather community sentiment about it.
The proposal would be to deploy a new AMM, with a curve similar to StableSwap and with very low spread, and low slippage close to the 1:1 price. This AMM would have in one bucket “virtual”[1] cUSD and another bucket with some “stable”.
“stable” for this document would be a highly liquid stablecoin, like USDC, DAI or USDT. Brought to Celo using some bridge (like Optics or Wormhole), or issued natively on the chain, USDC has already expressed interest to deploy to Celo. An oracle will get deployed so that this mechanism will get shut down if the stables are losing their peg (up or down). In case stables are brought to Celo with bridges, oracles should be deployed to guarantee that the bridge is solvent and healthy. For the case of bridges, bugs like making the funds unredeemable are more difficult to catch for an oracle.
Users can then use this AMM to mint cUSD with stable 1:1. The reserve will keep a small allocation in stable, that it would mostly use as a “working capital” that would act as a buffer to also allow burns using this mechanism.
The bucket size could be defined as a percentage of the amount of stable in the Reserve. This way the buckets won’t get to zero if the Reserve for some reason is struggling to trade to targets and acts as “rate-limit” for the total mintin. The bucket will update periodically, like the Mento buckets currently do, but as there is no price risk like in the current Mento, the updates can happen more sporadically.
As minting continues, the process creates a surplus of stables in the Reserve. The Reserve would then follow its standard rebalancing process. This process may vary slightly if CGP 62 passes. The opposite is true for burns.
Many of these mechanisms can be deployed in parallel with different stables.
Advantages of this mechanism:
- We’d finally have a mechanism for large mints of Celo Stables.
- There’s no price risk like the one it currently exists for the current 1:1 buckets, as the price of Celo could change between when it gets acquired and it’s exchanged on-chain.
- Fees for this mechanism would be quite low compared with the current Mento setup.
- All on/off-ramp rails available to acquire stables can now be used to mint Celo Stables with very little extra cost.
Downsides:
- This system puts more pressure in the Reserve, as the stables allocation needs to be rebalanced to keep the buckets in the right size.
- Attesting the health of a bridge could be challenging.
Looking forward: a cross-chain reserve
Using a cross-chain messaging protocol like Abacus, users could mint cUSD on Celo by sending DAI or USDT to a smart contract on Ethereum, and the Reserve will not have any bridge risk, because funds will be available in a smart contract directly on Ethereum. It is also simpler to verify that a bridge is working correctly with an oracle, as only one message passing should be checked.
Open questions:
- What would be the daily limit we’d like to set for this mechanism? How big should the buckets be?
- What are the risks of this?
- Is it acceptable to have an asymmetric fee, where minting is slightly cheaper (or even free) than the burning?
- Is this AMM required or a simple 1:1 trading would be enough?
- How would this work with cEUR or cREAL?
Credit: original idea by Martin Chrzanowski, then worked on by Martin Volpe with help from the cLabs and Mento team.
[1] Virtual in the sense that while it is in the bucket it has not yet actually minted, similar to how Mento buckets work nowadays.