Curve Facet
Last updated
Last updated
Note that this page has not been updated to reflect the current state of Beanstalk, but is left here as a reference.
The Curve Facet handles swapping in, adding liquidity to, and removing liquidity from Curve pools without assets leaving Beanstalk.
Swaps a token for another token in a Curve base, meta, plain or crypto pool. Slippage is tolerated on the amount out. It also verifies that the pool exists in the Curve Factory. This function does not support underlying tokens.
The stable pair Curve Factory can be found at:
The non-stable Curve factory can be found at:
pool
address
The address of the pool to exchange in. The pool must be registered in one of the Curve Factories.
registry
address
The Curve Registry to query pool
data from.
fromToken
address
The token to swap from.
toToken
address
The token to swap to.
amountIn
uint256
The amount to swap from.
minAmountOut
uint256
The minimum amount to receive from the swap.
fromMode
From
toMode
To
Slippage is tolerated on the amount out. This function verifies that the pool exists in the Curve Factory.
pool
address
The address of the pool to exchange in. The pool must be registered in one of the Curve Factories.
fromToken
address
The underlying token to swap from.
toToken
address
The underlying token to swap to.
amountIn
uint256
The amount to swap from.
minAmountOut
uint256
The minimum amount to receive from the swap.
fromMode
From
toMode
To
Adds tokens into a liquidity pool on Curve in exchange for LP tokens.
pool
address
The address of the pool to exchange in. The pool must be registered in one of the Curve Factories.
registry
address
The Curve Registry to query pool
data from.
amounts
uint256[]
The amount of each token to add.
minAmountOut
uint256
The minimum amount to receive from the swap.
fromMode
From
toMode
To
Removes liquidity from a pool on Curve in exchange for equal amounts of all tokens in the liquidity pool. The Farmer burns their LP tokens in the process.
pool
address
The address of the pool to exchange in. The pool must be registered in one of the Curve Factories.
registry
address
The Curve Registry to query pool
data from.
amountIn
uint256
The amount of LP to remove.
minAmountsOut
uint256[]
The minimum amount to receive in each of the tokens.
fromMode
From
toMode
To
Removes liquidity from a pool on Curve in exchange for an unequal amounts of tokens in the liquidity pool. The Farmer burns LP tokens in the process.
pool
address
The address of the pool to exchange in. The pool must be registered in one of the Curve Factories.
registry
address
The Curve Registry to query pool
data from.
amountsOut
uint256[]
The amount of each token to receive.
maxAmountIn
uint256
The max amount of LP tokens to burn.
fromMode
From
toMode
To
Removes liquidity from a pool on Curve in exchange for an amount of one token in the liquidity pool. The Farmer burns LP tokens in the process.
pool
address
The address of the pool to exchange in. The pool must be registered in one of the Curve Factories.
registry
address
The Curve Registry to query pool
data from.
toToken
address
The token to receive in exchange for burning LP tokens.
amountIn
uint256
The amount of LP tokens to burn.
minAmountOut
uint256
The minimum amount of the token to receive.
fromMode
From
toMode
To
None.
None.
Specifies what balance to receive the tokens from (see ).
Specifies what balance to send the tokens to (see ).
Swaps an underlying token for another underlying token in a Curve metapool. In a Curve metapool, one of the tokens is an LP token of another pool. Underlying tokens include the non-LP token in the pool as well as the tokens in the pool that the LP token belongs to. For example, in the , the underlying tokens are Bean, USDC, Tether and Dai.
Specifies what balance to receive the tokens from (see ).
Specifies what balance to send the tokens to (see ).
Specifies what balance to receive the tokens from (see ).
Specifies what balance to send the tokens to (see ).
Specifies what balance to receive the tokens from (see ).
Specifies what balance to sent the tokens to (see ).
Specifies what balance to receive the tokens from (see ).
Specifies what balance to send the tokens to (see ).
Specifies what balance to receive the tokens from (see ).
Specifies what balance to send the tokens to (see ).