Proposing a new way to enable large stables mint: Giga Mento

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:

  1. We’d finally have a mechanism for large mints of Celo Stables.
  2. 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.
  3. Fees for this mechanism would be quite low compared with the current Mento setup.
  4. All on/off-ramp rails available to acquire stables can now be used to mint Celo Stables with very little extra cost.


  1. This system puts more pressure in the Reserve, as the stables allocation needs to be rebalanced to keep the buckets in the right size.
  2. 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:

  1. What would be the daily limit we’d like to set for this mechanism? How big should the buckets be?
  2. What are the risks of this?
  3. Is it acceptable to have an asymmetric fee, where minting is slightly cheaper (or even free) than the burning?
  4. Is this AMM required or a simple 1:1 trading would be enough?
  5. 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.


Peg oracles will be very useful for me to productize the life-boat idea. The Band protocol ones are beta-quality, they aren’t very responsive and they are also missing data. Official peg oracles for every cStable + the stablecoins in the reserve USDC/DAI is very useful for apps like insurance funds too.

Current fee is 25bps, for this, can we drop to 5bps like Uni3? Or 3bps like Curve?

If you do 1:1 trading, without a curve, then I would imagine at every bucket refill, some CEX + DEX trading bots will just eat the entire bucket immediately. It’s just handing money to the fastest bot on every refresh I feel.

Trying to make this work with cEUR or cREAL will be unsafe, there isn’t the EUR or REAL equivalent of USDC / USDT…

1 Like

Some recent news! :sweat_smile:

Probably. And even with a curve, I’d suggest not having the midpoint artificially set to 1:1, but using a price oracle instead (should obviate the need for a “peg oracle”?).

How does slippage change the situation? I imagine bots will just eat up all the ‘cheap’ liquidity and leave expensive liquidity to slow tech users

1 Like

It amazes me how philosophical gems pop up in real life. The foundational idea/mechanism here isn’t exactly the peer-to-peer ideal crypto idealists aspire to. :wink:

The problem you highlighted here @Nadiem strikes me as a ‘flaw’ brought over from TradFi.

It’s the same reason the big boys ‘play games’ to find and exploit ‘retail money’. It’s why I won’t trade at the opening bell in TradFi.

They are fast and as a minnow I have no way to compete with that.

The bots will eat into the mento buckets enough to level its price out to be the same as other DEX on the network (Uni/Ube/Sushi/etc…).

It’s a more gradual lifting of the prices on other DEX towards 1:1 and the remainder liquidity on Mento will be at the network-wide consensus spot price vs mento bucket get eaten completely, mento has 0 liquidity left at the 1:1 price, other DEX price move up closer towards 1:1 due to bot arbing this.

Eitherway, the prices on other DEX will lift towards 1:1, the difference I think is:

  • should MENTO still have any liquidity left after the bot do their 1:1 swaps?
  • how much of the profit opportunity to give to the bots on each refresh (1:1 gives a lot more away)

behind the scenes on every blockchain network and every DEFI protocol, there’s often a first-mover advantage to being faster than the next guy, whether its arbs or liquidations or NFT sniping. The pareto principle applies to these DEFI market opportunities, with the fastest one taking 80%+ of the profits.

I think the difference between defi and tradfi is that a minnow like me can compete and fill the function that traditional HFTs does for wallstreet.

At least for now… :wink:

1 Like

I think, as soon as institutionals will enter DeFi for real, things will change. Unless we find ways to bake incentivisation principles different from traditional finance into our protocols. For me these are social principles which aim at reducing / removing explicit and implicit privileges. Instead of building positive feedback loops that help to confirm those few that are excellent (e.g with regard to knowledge, capital, equipment) I believe we have to embrace mediocracy and strengthen a broad base of committed average Bobs and Alices. Which is also desirable from a decentralisation perspective.

But this leads too far from the topic of this thread. Let’s not dive into :sweat_smile:


I think Giga Mento would be really cool for cStable holders. A couple of my thoughts:

  • The primary benefit of it is in my eyes not the ability to make large mints, but the ability to unwind larger amounts of cStables without putting too much price pressure on CELO and increasing the risk of running CELO <-> cStables into a death spiral like TITAN or LUNA. In theory, the reserve is diversified, but right now there is no clear way for cStable holders to actually claim non-reserve assets. The reserve MultiSig would have to rebalance non-CELO assets towards CELO, so the theoretical plan so far, but that didn’t work out for TITAN or LUNA in the past, with no successful example that I am aware of. Having a non-Celo-stable <-> cStable pool would solve that problem neatly. The reserve MultiSig could rebalance non-CELO reserve assets in a worst case scenario towards the non-Celo-stable used in Giga Mento, which users could then directly redeem.
  • I think it doesn’t really affect the CELO dynamics as a seignorage asset, as the reserve rebalancing continues to happen in the background (with dynamic I mean increasing CELO demand with increasing cStable demand)
  • On the choice of USDC / DAI / USDT: I would be in favour for USDC, especially because they might deploy on Celo in the future. That way, Giga Mento would circumvent bridge risk and avoid user pain from higher transaction costs and effort from bridging. With CGP62, USDC will probably be already introduced into the reserve. Another reason against USDT imo would be its lack of transparency. its decreasing dominance compared to USDC, and that it would have to become an official reserve asset.
  • Giga Mento would be a first large step towards reserve decentralization

The primary benefit of it is in my eyes not the ability to make large mints, but the ability to unwind larger amounts of cStables without putting too much price pressure on CELO and increasing the risk of running CELO <-> cStables into a death spiral like TITAN or LUNA

I have some doubt about this point. I understand the wish to have impact-less supply changes. But I think there will always be a price impact. You can control the impact by creating meta orders, but it will never be 0.
With regard to large minting or contracting I think it is just a question of whether the price impact occurs before or after the mint / contraction and which assets are affected.

For example:

  1. someone buys a lot of Celo with Fiat, Celo price increases before mint and cStable decreases after whenever and wherever placed in the market
  2. someone uses Giga Mento and significantly reduces the cStable pool. After the mint arbitrageurs trade Giga Mento against exchanges and cStable price at exchanges reduces

This is market dynamics speculation of course. But there is a change that the cStable decrease in 2. will be more likely than in 1. In case 2 it will be bots deterministically arbing and in case 1. it will depend on the trading strategy of the cStable buyer

I think I don’t fully understand. Do you think about cStable or CELO price impact?

I was thinking about the CELO price impact when a significant amount of cStable is unwinded. Right now this can only be done via CELO, so there would usually be a negative price impact on CELO, as CELO floats from the reserve to the market and is probably sold to a large extend.

Now, if I imagine Mento after CGP62 and with Giga Mento, these cStable supply changes could happen via USDC and no reserve rebalancing in or from CELO in the background. The direct price impact on CELO would be much much lower in my understanding. What do you think?


Let me try again, I realise I was messing things up, somehow mixing both in the minting scenario :sweat_smile:

Assuming the unwinding case this time:

  1. Someone sells a lot of cStables with Mento. Then sells Celo for Fiat which will decrease the Celo price. The cStable price decreases as a secondary effect as the collateral will reduce.
  2. Someone uses Giga Mento and significantly increases the cStable pool. After the contraction arbitrageurs trade Giga Mento against exchanges and cStable price at exchanges reduces. The Celo price decreases as a secondary effect.

In this mental model we will always see a Celo and a cStable price impact. What changes, is the primary affected asset. In a death spiral scenario I believe that the secondary effect will be rather large up to the point that primary and secondary does not matter.

Of course it is not possible to fully unravel the secondary effect between cStables and Celo. But I assume there is a bilateral dependency from

  • Celo to cStables, as Celo price changes impact the collateral value,
  • cStables to Celo, as cStables are an important Celo use case and Celo represents ownership of the reserve. Now unwinding cStables will always reduce the collateral amount.
1 Like
  1. How would this work with cEUR or cREAL?

I have been thinking about cStable swaps and the relevance for the market dynamic before. And in the last few weeks I realised that implicit mints / contractions might be a really important function that also allows to extend Giga Mento functionality.
In a scenario were we have one or more robust cStables (like cUSD) and one young cStable (like cREAL) a swap is very helpful for facilitating implicit mints / contractions.

  • For example in the current situation with cREAL users (especially liquidity providers) could unload or top up their cREAL inventories easily without requiring immediate changes to the cREAL Mento parameters.
  • I believe cStable swaps are safer to operate as the volatility will be much lower. Slippage can be low and buckets large as the Swap Mento can use a narrow price range.
  • An cUSD/USDC Giga Mento can be converted into a virtual cREAL/USDC or cEUR/USDC Giga Mento.
1 Like

Why not just get Curve to deploy on Celo and find ways to increase the liquidity of the existing bridges which are currently extremely thin?

Because there’s a liquidity bottleneck defined by today’s Mento minting capacity.


Understood, thanks :+1:

A few important things to think about regarding the reference price used for the Giga Mento oracle. For simplicity I only consider cUSD Giga Mento.

  • cUSD/USDC =1 : I believe this is a problematic idea as USDC is only a representative of USD and as such bears ‘representation risk’ (regulatory, operational, etc) that usually are reflected in the market price of USDC. It somehow reminds me of the Libor - OIS spread .
  • USD/USDC: With this choice Giga Mento will become part of the stability mechanism as stability arbitrage profits via USDC will be created. This is similar to the current setup via Celo.
  • cUSD/USDC: With this choice Giga Mento will be separated from the stability mechanism. During healthy market periods Giga Mento allows cUSD/USDC swaps without any constraints to the user. During times of stressed markets the use of Giga Mento will be happening at market rate, i.e. Giga Mento will not create incentives to mint or contract.

IMO the first option should not be considered. To decide between the second and the third we need to think thoroughly about what service Giga Mento is supposed to provide. We also need to analyse both options in different market scenarios (e.g. cUSD/USD <>1, USDC/USD <>1) and understand what could be the impact of Giga Mento in these cases.