Balancer Repertoire on Ethereum
Deployments
Name | Address |
---|---|
Vault | 0xBA12222222228d8Ba445958a75a0704d566BF2C8 (opens in a new tab) |
Action: withdraw_proportional
Parameters
Name | Type | Description |
---|---|---|
bpt | string (required) | Address bpt |
Withdraw funds from the Balancer pool, receiving all assets proportionally.
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 from 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.
Action: withdraw_single_token
Parameters
Name | Type | Description |
---|---|---|
bpt | string (required) | Address bpt |
exitTokenAddress | string (required) | Address exitTokenAddress |
Withdraw funds from the Balancer pool, receiving a single asset specified by the exitTokenAddress
.
Permissions:
BPT
below refers to the address of the BPT (Balancer Pool Token).
PID
below refers to the Balancer pool ID.Vault · exitPool
Redeem BPT
tokens from the corresponding Balancer pool and receive exitTokenAddress
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.
Action: unstake_withdraw_proportional
Parameters
Name | Type | Description |
---|---|---|
gauge | string (required) | Address gauge |
Unstake from the gauge and withdraw funds from the Balancer pool, receiving all assets proportionally.
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 to receive BPT
tokens in exchange.
-
Contract:
GAUGE
-
Function:
withdraw(uint256)
Parameter Constraint value
-
Vault · exitPool
Redeem BPT
tokens from 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.
Action: unstake_withdraw_single
Parameters
Name | Type | Description |
---|---|---|
gauge | string (required) | Address gauge |
exitTokenAddress | string (required) | Address exitTokenAddress |
Unstake from the gauge, then withdraw funds from the Balancer pool, receiving a single asset specified by the exitTokenAddress
.
Permissions:
BPT
below refers to the address of the BPT (Balancer Pool Token).
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 from the corresponding Balancer pool and receive exitTokenAddress
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.