Celo Pay Docs

Cashing out from Celo stables to fiat

Article last updated April 2nd 2022

What you'll learn:

  • Direct cash-out with apps like Ramp or Bitssa or Ponto
  • Cashing out on an exchange
  • Cashing out via bridges and exchanges

Some Disclaimers

This article covers some of the approaches we have considered or tested at Trelis for our own funds.
The level of complexity and the risks involved differ depending on the methods. We offer these ideas not as advise or a recommendation, but for your consideration and critique among many approaches that exist.

Direct cash-out with Ramp or Bitssa or Ponto

Depending on your jurisdiction, it may be possible to use services like Ramp or Bitssa or Ponto to cash out from cUSD or cEUR or cREAL into fiat currencies.
When possible, this is often a quick and convenient option. However, for exchanging larger amounts (e.g. over $1,000) fees may be lower if going via an exchange.

Cashing out on an exchange

Depending on your jurisdiction, there are different exchanges for which one can register a business (by providing KYC information). These exchanges will have different levels of fees and different levels of liquidity.

Consider exchange fees

Most often, the level of fees charged depends on the amount that you wish to trade, with larger amounts incurring smaller percentage fees. For example, here is the fee schedule from Bittrex as of April 2nd 2022:
Bittrex fees as of April 2nd 2022
As one can see, fees for traders doing less than $5k of volume on a monthly basis are 0.75% - quite high. You'll notice fees also depend on whether you set the price (maker) or you take someone else's price (taker).
Here is another schedule of fees, this time for KuCoin:
Fees for KuCoin

Consider exchange volumes

At least one other thing to consider for an exchange (of course reputation is always critical) is the amount of volume they have for the crypto you wish to trade. This can be viewed on many sites like Coingecko or coinmarketcap. Here is some data as of April 2nd 2022 from Coingecko on the Celo dollar:
Coingecko data on exchanges for cUSD
There are five pairs shown above for cUSD. Note that two are for exchanging directly to fiat USD, two are for exchanging to USDT and one is for exchanging to BTC.
Unfortunately, the two that go directly to cUSD are both relatively low volume. The -2% depth is about $10-20k. This means that, very roughly, one would have to sell cUSD at up to a 2% discount in order to sell $10k of cUSD.
There is also the option to go via Bitcoin, but this is often a bad idea because:
  1. 1.
    There is even lower liquidity (not necessarily always the case)
  2. 2.
    Going via Bitcoin can trigger capital gains if one is in a FIFO based capital gains system
The final option above is to trade from cUSD to USDT. Here, there is more liquidity, a few hundred thousand dollars (at least on Kucoin above) at the 2% depth point. The idea here is to swap to USDT and then swap from USDT (which is a very liquid market) to USD (or perhaps EUR). This is called slippage.
In summary, though not always the case, it is often better:
  • for smaller amounts to try and swap directly to USD/fiat
  • for larger amounts, to swap first to USDT and then to USD/fiat
One short note: By going via USDT, even briefly, one is taking on the risk of USDT maintaining its peg. Some research on the USDT token is worth doing to better understand this.

An example of swapping from cUSD to USDT to USD

This is very rough example, but provides a framework for how to think about things. Let's consider swapping 50,000 cUSD to USD.
  • Let's say we swap cUSD to USDT on Kucoin. There is some amount of fees to Kucoin, plus there will be slippage of maybe about 50,000 / 200,000 x 2% = ~0.5% slippage.
  • Now, swapping USDT to USD. Slippage here is probably small, so the main cost is the Kucoin fee (which seems low, <0.1%).
Total costs to swap are therefore estimated around 0.5-0.7%.
A few things to watch out for in practise:
  • Markets change all of the time and CoinGecko is not providing a live picture into liquidity necessarily. You have to check, in real time, how much slippage you will see on your trade.
  • It is a pain to have accounts with every exchange. One may not have an account with the exchange that currently has sufficient liquidity.

Cashing out via Bridges and Exchanges

This is an alternate approach, for very large amounts, but definitely comes with risks and complexity. The approach here is to bridge from cUSD (or other cStable) over to a high liquidity stable like USDC or USDT, and then sell that USDC or USDT on an exchange.
For example, there is reasonable liquidity on Mobius on the Optics v2 pool going from cUSD to cUSDC (optics USDC):
Optics v2 pool for cUSD to cUSDC on Mobius.Money
At the time of writing, it looks like one could swap 1,000,000 cUSD for cUSDC for about 0.3% slippage:
swapping cUSD for cUSDC on Mobius
Once swapped to cUSDC, one can make use of the optics bridge to move from cUSDC on CELO to USDC on Ethereum. From there funds can be transfered to a centralised exchange and the USDC can be sold for USD/fiat. Note that Optics requires funds to be claimed on the receiving end, so it's not possible to directly use Optics to bridge to one's Ethereum address on an exchange.
The benefit of doing all of this is that the cost of the overall swap from cUSD to USD is now dominated by the cost of a stableswap on mobius (assuming that centralised exchange fees are low). So, in the case above, one might expect - based on data above - to be able to swap a large amount (1,000,000 cUSD) with total costs of somewhere around 0.35-0.4%.
However, this process involves multiple steps and bridging risks. Notably:
  1. 1.
    Optics in particular required an upgrade to v2 after recovery mode was unexpectedly initiated for v1 .
  2. 2.
    With many manual steps, it's easy to make a mistake like entering the wrong price or wrong destination address.
Any questions or comments? Please follow and/or DM us on Twitter @TrelisPay.