Balancer Repertoire on Ethereum

Deployments

NameAddress
Vault0xBA12222222228d8Ba445958a75a0704d566BF2C8 (opens in a new tab)

Action: withdraw_proportional

Parameters

NameTypeDescription
bptstring (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))

    ParameterConstraint
    poolIdequal to PID
    senderequal to AVATAR
    recipientequal to AVATAR
    request.assets-
    request.minAmountsOut-
    request.userDataSee 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"].

Additional Resources:

Action: withdraw_single_token

Parameters

NameTypeDescription
bptstring (required)Address bpt
exitTokenAddressstring (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))

    ParameterConstraint
    poolIdequal to PID
    senderequal to AVATAR
    recipientequal to AVATAR
    request.assets-
    request.minAmountsOut-
    request.userDataSee 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 of exitTokenAddress within the pool's tokens.

Additional Resources:

Action: unstake_withdraw_proportional

Parameters

NameTypeDescription
gaugestring (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)

    ParameterConstraint
    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))

    ParameterConstraint
    poolIdequal to PID
    senderequal to AVATAR
    recipientequal to AVATAR
    request.assets-
    request.minAmountsOut-
    request.userDataSee 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"].

Additional Resources:

Action: unstake_withdraw_single

Parameters

NameTypeDescription
gaugestring (required)Address gauge
exitTokenAddressstring (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)

    ParameterConstraint
    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))

    ParameterConstraint
    poolIdequal to PID
    senderequal to AVATAR
    recipientequal to AVATAR
    request.assets-
    request.minAmountsOut-
    request.userDataSee 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 of exitTokenAddress within the pool's tokens.

Additional Resources: