Balancer Repertoire on Ethereum
Deployments
Name | Address |
---|---|
Vault | 0xBA12222222228d8Ba445958a75a0704d566BF2C8 (opens in a new tab) |
Strategy: withdraw_proportional
Parameters
Name | Type | Description |
---|---|---|
bpt | string[] (required) | Address bpt |
Withdraw funds from the Balancer pool withdrawing all assets in proportional way.
Permissions:
BPT
below refers to the address of the BPT (Balancer Pool Token).
TOKEN
below refers to the ERC-20 token address of the corresponding pool.
PID
below refers to the Balancer pool ID.Vault · exitPool
Redeem BPT
tokens to the corresponding Balancer pool and receive proportional amounts of TOKEN
tokens in exchange.
-
Contract:
Vault
-
Function:
exitPool(bytes32,address,address,(address[],uint256[],bytes,bool))
Parameter Constraint poolId
equal to PID
sender
equal to AVATAR
recipient
equal to AVATAR
request.assets
- request.minAmountsOut
- request.userData
See the note below for details. request.toInternalBalance
-
Note on userData
:
userData
is a bytes-like parameter that must be ABI-encoded.- Scoping details:
- For
ComposableStable
Pools:userData
is scoped as [2], encoded as ["uint256"]. - For all other pool types:
userData
is scoped as [1], encoded as ["uint256"].
- For
Additional Resources:
- Balancer subgraphs (opens in a new tab) for obtaining
PoolType
. - Balancer documentation (opens in a new tab) for
userData
structure.
Strategy: withdraw_single_token
Parameters
Name | Type | Description |
---|---|---|
bpt | string[] (required) | Address bpt |
Withdraw funds from the Balancer pool withdrawing a single asset specified by the token address.
Permissions:
BPT
below refers to the address of the BPT (Balancer Pool Token).
TOKEN
below refers to the ERC-20 token address of the corresponding pool.
PID
below refers to the Balancer pool ID.Vault · exitPool
Redeem BPT
tokens to the corresponding Balancer pool and receive proportional amounts of TOKEN
tokens in exchange.
-
Contract:
Vault
-
Function:
exitPool(bytes32,address,address,(address[],uint256[],bytes,bool))
Parameter Constraint poolId
equal to PID
sender
equal to AVATAR
recipient
equal to AVATAR
request.assets
- request.minAmountsOut
- request.userData
See the note below for details. request.toInternalBalance
-
Note on userData
:
userData
is a bytes-like parameter that must be ABI-encoded.- Scoping details:
- For all pool types,
userData
is scoped as[0, undefined, exitTokenIndex]
, encoded as["uint256", "uint256", "uint256"]
. - Where
exitTokenIndex
is determined by the position ofexitTokenAddress
within the pool's tokens.
- For all pool types,
Additional Resources:
- Balancer subgraphs (opens in a new tab) for obtaining
PoolType
. - Balancer documentation (opens in a new tab) for
userData
structure.
Strategy: unstake_withdraw_proportional
Parameters
Name | Type | Description |
---|---|---|
gauge | string[] (required) | Address gauge |
Unstake from gauge and withdraw funds from the Balancer pool withdrawing all assets in proportional way.
Permissions:
BPT
below refers to the address of the BPT (Balancer Pool Token).
TOKEN
below refers to the ERC-20 token address of the corresponding pool.
GAUGE
below refers to the BalancerGaugeDeposit
contract address for
the target Balancer pool.
PID
below refers to the Balancer pool ID.GAUGE · withdraw
Redeem GAUGE
tokens and receive BPT
tokens in exchange.
-
Contract:
GAUGE
-
Function:
withdraw(uint256)
Parameter Constraint value
-
Vault · exitPool
Redeem BPT
tokens to the corresponding Balancer pool and receive proportional amounts of TOKEN
tokens in exchange.
-
Contract:
Vault
-
Function:
exitPool(bytes32,address,address,(address[],uint256[],bytes,bool))
Parameter Constraint poolId
equal to PID
sender
equal to AVATAR
recipient
equal to AVATAR
request.assets
- request.minAmountsOut
- request.userData
See the note below for details. request.toInternalBalance
-
Note on userData
:
userData
is a bytes-like parameter that must be ABI-encoded.- Scoping details:
- For
ComposableStable
Pools:userData
is scoped as [2], encoded as ["uint256"]. - For all other pool types:
userData
is scoped as [1], encoded as ["uint256"].
- For
Additional Resources:
- Balancer subgraphs (opens in a new tab) for obtaining
PoolType
. - Balancer documentation (opens in a new tab) for
userData
structure.
Strategy: unstake_withdraw_single
Parameters
Name | Type | Description |
---|---|---|
gauge | string[] (required) | Address gauge |
Unstake from gauge and withdraw funds from the Balancer pool withdrawing a single asset specified by the token address.
Permissions:
BPT
below refers to the address of the BPT (Balancer Pool Token).
TOKEN
below refers to the ERC-20 token address of the corresponding pool.
GAUGE
below refers to the BalancerGaugeDeposit
contract address for
the target Balancer pool.
PID
below refers to the Balancer pool ID.GAUGE · withdraw
Redeem GAUGE
tokens and receive BPT
tokens in exchange.
-
Contract:
GAUGE
-
Function:
withdraw(uint256)
Parameter Constraint value
-
Vault · exitPool
Redeem BPT
tokens to the corresponding Balancer pool and receive proportional amounts of TOKEN
tokens in exchange.
-
Contract:
Vault
-
Function:
exitPool(bytes32,address,address,(address[],uint256[],bytes,bool))
Parameter Constraint poolId
equal to PID
sender
equal to AVATAR
recipient
equal to AVATAR
request.assets
- request.minAmountsOut
- request.userData
See the note below for details. request.toInternalBalance
-
Note on userData
:
userData
is a bytes-like parameter that must be ABI-encoded.- Scoping details:
- For all pool types,
userData
is scoped as[0, undefined, exitTokenIndex]
, encoded as["uint256", "uint256", "uint256"]
. - Where
exitTokenIndex
is determined by the position ofexitTokenAddress
within the pool's tokens.
- For all pool types,
Additional Resources:
- Balancer subgraphs (opens in a new tab) for obtaining
PoolType
. - Balancer documentation (opens in a new tab) for
userData
structure.