Balancer Repertoire on Arbitrum

Deployments

NameAddress
Vault0xBA12222222228d8Ba445958a75a0704d566BF2C8 (opens in a new tab)

Strategy: withdraw_proportional

Parameters

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

    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:

Strategy: withdraw_single_token

Parameters

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

    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:

Strategy: unstake_withdraw_proportional

Parameters

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

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

    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:

Strategy: unstake_withdraw_single

Parameters

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

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

    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: