Proposal: Liquidity Staking


Proposal to have 45k BAL (~31% of the weekly distribution) allocated as an extra incentive for liquidity between BAL and uncapped tokens (WETH, DAI, USDC, WBTC). Wallets flagged as Balancer Labs shareholders don’t qualify for this “liquidity staking” extra incentive.
The main goals are to significantly increase liquidity on key BAL pairs and to allow non-shareholders to compound their BAL holdings at a much faster pace, accelerating protocol decentralization.


The importance of BAL liquidity can’t be overstated:

  • TRUER PRICE DISCOVERY: it improves trading conditions for all market participants (lower spreads and less slippage for both buyers and sellers), allowing for a more transparent and effective price discovery process;

  • SUPERIOR LP INCENTIVES: a stronger token (with higher price inertia) results in a higher quality for the incentives given to LPs (liquidity providers) via liquidity mining;

  • SHARPER GOVERNANCE: it opens doors to a new class of invaluable stakeholders and protocol governors (e.g. larger investors, especially those heavily involved in and experienced with DeFi protocols);

  • BROADER GOVERNANCE: with no participation from Balancer Labs’ shareholders (more on that later), liquidity staking will accelerate BAL distribution and protocol decentralization by giving all other BAL holders the opportunity to compound their governance rights at a much faster pace;

  • SAFER GOVERNANCE: pools are non-custodial and BAL in them retain full voting power (i.e. no need to withdraw liquidity to vote), such that high liquidity and a healthy governance are not in conflict;

Balancer itself being a DEX, it feels only natural as the ideal venue for high BAL liquidity to be incentivized. Finally, it’s worth noting that allowing a high portion of the token supply to be concentrated on centralized exchanges could expose the governance to significant risks, as illustrated by the episode with STEEM.

Recapping: how liquidity adjustment currently works

The 145k BAL weekly distribution to LPs on Balancer is calculated proportionally to the adjusted liquidity contributed by each LP. This adjustment is made by applying (i.e. multiplying) a few factors to their liquidity measured in dollar terms.

Naturally, the value of those factors can be:

  • equal to 1, having no effect;
  • less than 1, acting as a penalty (when the liquidity is deemed less useful);
  • greater than 1, acting as an extra incentive.

A feeFactor ≤ 1 (see proposal) applies a small penalty to pools with higher fees.

For each pair inside a pool, we apply:

  • a wrapFactor of:

  • a BRF (BAL & Ratio Factor), which is the combination of a ratioFactor ≤ 1 (see proposal) and a stakingBoost ≥ 1 (described in this proposal and with further calculation details specified in its ammendment).
    BRF = stakingBoost * ratioFactor

    • If the pair is not of type {BAL & uncapped_token} (uncapped tokens currently being: WETH, DAI, USDC, WBTC, BAL), then its stakingBoost = 1 (i.e. the incentive doesn’t apply to this pair).

The current BRF will only depend on the characteristics of the pool (its tokens and weights), and may have a maximum value of 1.54. It looks like this:

After looping through all possible pairs in a pool, we combine their factors (via weighted average) and the result is a wrapFactor and a BRF for the whole pool.

Finally, we calculate and apply a tokenCapFactor adjusting down the liquidity of a token when it exceeds a predetermined maximum. Except for the 5 uncapped tokens already mentioned, all tokens eligible for liquidity mining are currently capped at $10M each. See more details on how to calculate it and the recent changes to how token caps will evolve.

The Proposal

This is a proposal to have 45k BAL (~31% of the weekly distribution) allocated as an extra incentive for liquidity staking.

This extra incentive is:

all BAL distributed as a result of applying a stakingBoost > 1 to the liquidity of {BAL & uncapped_token} pairs, from wallets which are not flagged as shareholders of Balancer Labs.

The remaining 100k BAL would be distributed to all LPs in all eligible pools, disconsidering the effect of a stakingBoost (i.e. all liquidity being subject to BRF = ratioFactor).

The constant value now would be: STAKERS_SHARE = 45000 / 145000, and we can then calculate the unique value for stakingBoost that satisfies this target distribution.

The intended result is for BAL liquidity on Balancer to increase substantially, but in a self-regulated way.

The simple yet powerful idea is: as BAL liquidity gets higher the extra incentive to staking gets diluted among stakers, so that our constant target for STAKERS_SHARE is met.

In a more visual approach:

  • when non-shareholder BAL liquidity is low, the stakingBoost will be high, resulting in a high BRF (a hypothetical scenario being the orange curve in the graph below, in which BRF peaks at 12), so there will be a very strong incentive for BAL liquidity to increase;

  • when non-shareholer BAL liquidity is high (the desired scenario), the stakingBoost will have come down to lower levels, resulting in a lower BRF (a hypothetical scenario being the green curve below, in which BRF peaks at 3).

Calculating the stakingBoost: a practical example

We first calculate the liquidityPreStaking: the total adjusted liquidity from applying all factors, but with stakingBoost = 1 (i.e. BRF = ratioFactor). Let’s say the result was $200M.

We will need to apply a yet unknown stakingBoost so that:
STAKERS_SHARE = (finalLiquidity - liquidityPreStaking) / finalLiquidity

… which can also be stated as:
finalLiquidity = liquidityPreStaking / (1 - STAKERS_SHARE)

In our example:
finalLiquidity = $200M / (1 - 45000/145000) = $290M

We may apply any temporary tempStakingBoost > 1 to {BAL & uncapped_token} pairs from non-shareholder LPs, resulting in a tempLiquidity. Let’s say our result was $230M. This would mean the tempStakingBoost increased the adjusted liquidity in $30M, while what we actually want is an increase of $90M.

Now to get the desired stakingBoost, we only need to “stretch” or “shrink” the tempStakingBoost according to the ratio between the two liquidity adjustments (desired & temporary):

(finalLiquidity - liquidityPreStaking) / (tempLiquidity - liquidityPreStaking) = stakingBoost / tempStakingBoost

… which in our example would result in:

(290 - 200) / (230 - 200) = stakingBoost / tempStakingBoost
stakingBoost = 3 * tempStakingBoost

Shareholder Addresses

An important aspect of this proposal is that Balancer Labs shareholders (investors, advisors and founders) seem aligned with the spirit of the proposal: to accelerate governance rights distribution. In order to achieve this goal, their wallets will be excluded from participating in liquidity staking. This restriction doesn’t apply to eventual BAL they hold that are unrelated to their shareholder allocations, for instance BAL bought on the market or earned through being LPs with tokens other than their BAL shareholder allocation.

Below is the complete list of shareholder addresses to be excluded from liquidity staking:


Note: wallets currently tagged as “Balancer: Shareholder XX” on Etherscan are actually vesting smart contracts which hold mostly locked (i.e. yet unvested) BAL. Vesting happens continuously and linearly over a period of 3 years which started at token launch (2020-06-20). When finally vested (i.e. free to transfer), BAL can only be withdrawn to the respective beneficiary address of each vesting contract. The addresses listed above are the 51 unique beneficiaries of the 51 vesting contracts. All the BAL balance they already hold is vested.

The community is willing to tolerate up to about 10k BAL per week per shareholder being sent to centralized exchanges as they are cognizant of shareholders also seeking to deleverage their BAL positions over time, without attempting to subvert the exclusion list. In case some large BAL balances move to third-party custody solutions held in segregated addresses or to multisig wallets (both situations are likely to happen), the current list may be updated to reflect those new shareholder addresses as also excluded from liquidity staking.

The community will have the prerogative to update this list so that changes are effective already before any still pending weekly distribution.

The Code

The actual code implementing all the changes described in this proposal is currently under testing and the final proposal to be voted on will point to a specific PR so that voters can verify for themselves the exact changes.


Beautifully worded and extremely clear. Thanks for the proposal, can’t wait to see its effects in action!


Looks good! :slightly_smiling_face:

1 Like

Not sure about this one. I understand the motivation, but if we want to decentralize sooner, attract investors, encourage LPs to hold onto the BAL rewards, etc., I think there may be better ways to do it.

What we want to encourage is pools that have a broad appeal and uses across DeFi (e.g. ETH/WBTC, ETH/DAI, renBTC/USDC, etc.). Something like this: Proposal for a complete change in BAL distribution. I expect this Liquidity Staking proposal will end up creating massive BAL pools and will suck up liquidity from other pools that are more useful in DeFi. Unless it’s efficient to trade through a intermediary token such as BAL (similar to what Bancor does), I think this is going to be counterproductive to increasing trade volumes.

Right now, BAL pools are only useful to people who trade BAL which is either owners of the protocol and yield farmers, and I expect that this will make it easier for yield farmers to sell their tokens and will just attract more of them.

If we want to increase speed of decentralization we could increase the weekly rewards and shorten the distribution period. If the concern is people selling their tokens, I think making BAL tokens yield-generating either through a dividend or by enabling it as collateral in a lending platform (like CREAM has done: will encourage people to hold on to their tokens. What yearn does from a delegated vault perspective with Link and YFI is also interesting as it maintains a baseline level of demand for those tokens.

Have we thought about getting the BAL token into the flipsidecryto app (e.g. It could yield some interesting insights.

well thought out…
people will come for yield… and provide liquidity
might get hooked on governance…

im in…

wen vote?

I don’t see this being necessary or important at this stage in the game. Constantly changing the rewards structure just creates confusion and frustration for newbies. I’ve been able to buy as much BAL as I’ve wanted too. Things just change too fast…let the market play out. I think the market has been great for balancer and people love it!

If you all really want to try something, try something less extreme like a wrapfactor of 1.5. I bet that’s enough to accomplish what you want.


My appologies. Minor mistake on my part.

This quoted part must be slightly tweaked, otherwise results are innacurate. I won’t edit the original post so that the unedited forum version always matches the immutable IPFS link for what was voted for on the proposal (i.e. the original text).

It should actually read:

Now to get the desired stakingBoost, we only need to “stretch” or “shrink” the tempStakingBoost according to the ratio between the two liquidity adjustments (desired & temporary):

(finalLiquidity - liquidityPreStaking) / (tempLiquidity - liquidityPreStaking) = (stakingBoost - 1) / (tempStakingBoost - 1)

… which can also be stated as:

stakingBoost = 1 + (tempStakingBoost - 1) * (finalLiquidity - liquidityPreStaking) / (tempLiquidity - liquidityPreStaking)

In our example, this would result in:

stakingBoost = 1 + (tempStakingBoost - 1) * (290 - 200) / (230 - 200)
stakingBoost = 1 + (tempStakingBoost - 1) * 3
stakingBoost = 3 * tempStakingBoost - 2