Read state, quote, and trade
Every curve trade carries a 0.97% fee: 0.30% to the creator wallet, 0.67% to the platform. Every quote on this page is already net of it. Use the API if you want unsigned transactions handed to you, or the ABI if you build your own.
Through the API
- 01Quote
GET /tokens/:token/quoteNet-of-fee output for a buy or sell amount.
- 02Build
POST /tokens/:token/build-txAn unsigned transaction with slippage applied.
- 03Sign
your user's walletNothing here signs. The recipient wallet does.
Or call the curve directly
token()addressThe ERC-20 this curve prices
quoteAsset()addressPairing asset. Zero address means the native coin
creator()addressReceives the creator share of every trade
graduated()boolTrue once reserves moved to Uniswap
getPrice()uint256Spot price in quote units, scaled by priceScale()
getMarketCap()uint256Price times total supply, quote units
realQuoteReserves()uint256Quote actually held by the curve
realTokenReserves()uint256Tokens still for sale on the curve
graduationThreshold()uint256Quote reserve that triggers migration
getBuyQuote(uint256 quoteIn)uint256 tokensOutNet of fee, use for minTokensOut
getSellQuote(uint256 tokenAmount)uint256 quoteOutNet of fee, use for minQuoteOut
buy(uint256 amountIn, uint256 minTokensOut)payable. Native quote: amountIn must equal msg.value. ERC-20 quote: approve the curve first, send no value.
buyFor(uint256 amountIn, uint256 minTokensOut, address recipient)Same as buy, tokens go to recipient. For terminals and routers trading on behalf of a user.
sell(uint256 tokenAmount, uint256 minQuoteOut)Approve the curve for tokenAmount first.
After graduated() flips true the curve rejects trades and quotes return zero. Route to the Uniswap V3 pool from PoolCreated at the 1.00% fee tier, using the standard SwapRouter02 and QuoterV2 addresses listed on the contracts page. The API endpoints above already do this switch for you.