Curve Finance is a platform for trading stablecoins. You know, of course what stablecoins are? With crypto prices going up and down a lot—especially the down this week—proponents love a token, whose value matches the US Dollar as a path toward great adoption.
There are drawbacks, however, with most stablecoins requiring bank deposits sitting in those institutions that some want to disintermediate. What we have also seen from the first generation of stablecoins is that they don’t always match one-for-one to their benchmark (i.e. the Dollar).
That's led the cunning entrepreneurs (and traders) of this space to start trading one type of stablecoin for another (both should theoretically be close to 1 USD). In theory this balancing act should make them even more stable.
So why exactly do traders care about stablecoins? Tether was very much the test case, and proved to be an extraordinarily effective method of getting Dollar denominated assets from one exchange to the next. That helped alleviate many of the banking issues which many exchanges faced, and continue to face, and also helped move USD on the same rails that we move shitcoins. Given that a lot of people didn’t want to use Tether, an entire complex of stablecoins developed, looking at offering more regulatory compliance, better audits, or removing the need for bank accounts altogether.
What is Curve?
If you need to trade one type of centralized (or even perhaps, less centralized) stablecoin for another, and you want a decentralized way to trade—and the price of doing so is something of a priority for you—say hello to Curve.
“Curve is an exchange liquidity pool on Ethereum (like Uniswap) designed for (1) extremely efficient stablecoin trading (2) low risk, supplemental fee income for liquidity providers, without an opportunity cost,” its website helpfully explains.
In other words, Curve enables people who have one type of stablecoin put it up for sale for another type of stablecoin. The result should be better exchange rates for the users.
How Curve is useful
Since not everyone (like exchanges for instance) accepts every possible type of stablecoin (USDT (Tether), USDC, DAI, etc…) it may be necessary to switch what you have for something else. In addition, these stablecoins aren’t perfectly stable, meaning you can sometimes buy them for less than $1, or sell them for more than $1 (or if you’re unlucky, the inverse).
But Curve is decentralized—it doesn’t have a Binance, or Coinbase holding your coins.
Centralized exchanges have drawbacks: they could get hacked and lose your coins; they might not like the color of your passport and block you; and worst of all they might not have the trading pair you’re interested in. Decentralized exchanges put you back in control, allowing you to lose your own coins, trade between currencies that centralized exchanges don’t deem profitable and ignore local laws and regulations (joking! I would never advocate this!).
Other benefits of Curve?
Yeah, the site has an awesome pseudo-retro Linux vibe (see what I did there?), that at the makes it feel super scary for the uninitiated, and super cool for the hipster DeFi insiders. Anyway, onwards.
I still had some DAI floating around on dYdX from a previous experiment, so I went to grab that. As you can see in the screenshot, DAI had performed much better than ETH in previous day or so.
How to use Curve
While the blockchain processes that transaction, and you process that joke, I shift my attention over to have a look at Curve.
There’s that Linux vibe (or maybe Windows 95 if that’s your thing). Either way I like it.
While we’re here though, what I don’t like however, is the name. Why does every other tech-y financial-y thing need to be named after some variant of this? It's confusing to users, who are already suspicious of being mislead.. Curv, Curve, CurveGlobal, Curves… oh wait that last one is something else. But my point stands: too much “curve” already!
Now that my rant is over I move on to the heart and soul of Curve, the “buy and sell” button. With my 19.401 DAI in place, Curve sets me up to sell them for the only other thing it offers, USDC. With little choice, I setup the trade.
Next, I get the infamous MetaMask approval which let’s me know what this trade will cost. The first guess gives me a beefy $1.80 transaction cost, nearly 10% of the value of my small trade. I tune down the gas price (meaning it will take longer for my transaction to get picked up by miners) and it gives me a new estimate of $0.70. I’m still a bit surprised that the price is that high, and explore what’s going on in the background, and find that Curve estimates that it will need 1.2m gas (the unit of account in Ethereum innards) to make the transaction. By comparison, a normal transfer for an ERC20 token (e.g., DAI) from one account to the next is about 43k gas.
Oh well, must be a lot going on in the background (in Ethereum you pay more gas for more operations), and in all cases this thing should yield a better outcome (more USDC for every DAI) than Uniswap.
So I have a look at Uniswap to compare. While my transaction is a bit more expensive, receiving 19.36 USDC, instead of 19.48 USDC, the gas charges are also significantly lower, estimating 119k gas (about $0.08 at the time).
This matters if you do a lot of trading, and have to pay a larger transaction fee each time. If you’re exchanging more money, and fewer trades, the transaction fee is less important, and the exchange rate is more important. Ipso facto, Curve may be more enticing for larger traders.
Why are the exchange rates better on Curve?
There are two reasons. First, Curve sets the price at which people trade one stablecoin for another. That means you don’t decide the price you’re willing to buy/sell, it does. We saw this on Uniswap as well, and it turns out that Curve just modified the formula.
Second, Curve claims this is because the liquidity provision is done through Compound, allowing liquidity providers to earn interest on their tokens, which in theory should make them happier to trade at a tighter spread (meaning they make less on each individual transaction, but earn interest on their holdings over time).
Yay, less gas!
Unfortunately, Decrypt gets upset when I promise to review one DeFi thing and end up trying to recycle one that I reviewed already. So I come back to my Curve deal which managed to confirm in the meantime.
Because there’s literally no indication on Curve to let me know that my transaction was successful (MetaMask did, however, tell me), I opened up Etherscan to have a look.
The result was slightly less USDC in my account than I expected (19.46 vs 19.48), which doesn’t sound like a big deal, but could count if you were moving a larger amount and lost a similar percentage.
On the plus side, the contract ended up using about 645k gas—slightly more than half what was estimated when I made the transaction. While it’s tempting to tell the Curve team to lower its estimates, as someone who has had more than a few failed transactions due to the contract running out of gas (which means the transaction doesn’t go through, but you still pay), I’d rather leave it with a little wriggle room.
The bottom line: Is Curve worth using?
Curve is actually pretty simple to use. While it doesn’t do a ton from a user’s point of view, what it does can be useful, especially given the competitive rates that become particularly acute when you make larger trades.
One other thing to note is that Curve has a slightly hidden site—think of it as the In-n-Out “secret menu” which allows a greater range of stablecoin-to-stablecoin trading pairs (includes USDT, and TUSD). The rates are slightly lower, likely due to how things work on the back end (i.e. it doesn’t use Compound).
In conclusion, the name sucks, the site appeals to my retro aesthetic sensibilities, and it’s dead simple to use.
Be warned though that for a smallish transaction, the exchange rate savings probably aren’t worth the higher price tag on miner transaction fees. Curve is really aimed at larger traders, who move thousands, or hundreds of thousands of stablecoins.
Of course that’s not a recommendation, because Colin doesn't do that. Also, caveat emptor: as the FAQs say, this thing is still in alpha and could have some nasty hidden bugs.
The views and opinions expressed by the author are for informational purposes only and do not constitute financial, investment, or other advice.