Curve is a decentralized exchange (DEX) and automated market maker (AMM) on Ethereum and EVM-compatible sidechains/L2s, designed for the efficient trading of stablecoins and volatile assets.
Additionally, Curve has launched its own stablecoin, crvUSD, and Curve Lending, both featuring a unique liquidation mechanism known as LLAMMA.
This documentation outlines the technical implementation of the core Curve protocol and related smart contracts. It may be useful for contributors to the Curve codebase, third-party integrators, or technically proficient users of the protocol.
Has Curve been audited?
Curve smart contracts were Audited by Trail of Bits.
However, security audits don’t eliminate risks completely. Please don’t supply your life savings, or assets you can’t afford to lose, to Curve, especially as a liquidity provider.
Using Curve as an exchange user should be significantly less risky, but this is not advice.
How do I trade on Curve?
Before trading, you’ll have to approve Curve to interact with your stablecoin balance, similar to most DeFi applications.
On the exchange page, select the asset you would like to convert (e.g. USDC), and the quantity (e.g. 1,000) – the exchange rate, and quantity that you will receive (including and all slippage and fees) will be displayed. The exchange rate might surprise you – that’s the power of Curve.
Fees
Fees and pool parameters are decided by the Curve DAO.
Currently, the fee on all pools is 0.04%, of which 50% goes to liquidity providers, and 50% to veCRV holders (members of the DAO).
How do I provide liquidity to Curve?
Curve uses cTokens, or Ytokens assets for lending while market making, as the liquidity pool – this ensures that assets are always being put to work.
You can deposit plain stablecoins – DAI/USDC/USDT/TUSD/BUSD/sUSD which will get converted underneath to cTokens for compound pool or yTokens for pax, y, busd pools or you can click the “Deposit wrapped” option to deposit cTokens or yTokens if you have them.
You can also deposit Bitcoin ERC20s – renBTC, WBTC, sBTC in the ren and pools
What’s “Use maximum amount of coins available”?
This means using all USDC and DAI in your wallet. This way is recommended only if you have much less coins than currently in liquidity pool.
What’s “Infinite approval – trust this contract forever”?
This means that you preapprove the contract to be able to spend any amount of your coins when you interact with it. This means that you won’t be asked every time to appove the amount of coins you want to transfer to the contract.
How to withdraw liquidity I provided?
Go to the withdraw page. If you want to withdraw some percentage of your liquidity (the preferred way), type that percentage in the top field. You can, however, withdraw in a form of individual coins (USDC, DAI, …), having the exchange happening for you, if you type amounts in lower fields. You’ll get charge with the exchange fee in the latter case.
Reiny Brocka –
Great !