Modifying feeFactor: toward reducing the mining penalty for high-fee pools

On behalf of the Balancer community, I propose to modify the feeFactor curve by changing the exponential coefficient from 0.5 to 0.25. The effect would be to reduce the liquidity mining penalty for high-fee pools, thereby incentivizing a shift toward more profitable fees for liquidity providers.


While the core motivation for liquidity mining is the equitable distribution of protocol governance power, economic incentives inevitably attract profit seekers. As such, it is important to align the incentives of those profit seekers with the best interests of the Balancer protocol. Liquidity providers may initially be attracted to Balancer by the profit opportunity that liquidity mining represents, but whether they ultimately stay with the protocol depends on their ability to generate revenue independent of BAL rewards. Above all, Balancer seeks to attract sustainable, long-term liquidity.

At present, the feeFactor curve is quite steep. Swap fees over 0.5% are sharply penalized, with rewards dropping into “negligible” territory around a 5% fee. There are two key consequences of this:

  1. Liquidity providers will set fees as low as possible in order to maximize BAL yield. Many existing pools with fees around ~0.1% are unprofitable in the absence of the BAL distribution and will not be able to outpace impermanent loss in the near future.

  2. Liquidity providers will not bother to weigh the tradeoffs of high trading fees, as >3%-fee pools will not earn much BAL at all and it is quite trivial to earn a high return by just parking some liquidity in a low-fee pool. This creates a disincentive toward certain novel use cases of Balancer such as the “swing trading” strategy proposed by Fernando here:

The Proposal

The current fee factor takes the following form:

It can be generalized, replacing the constant factor (1/2) in the exponential with a coefficient called k.

I propose to change the value of this coefficient, k, from 0.5 to 0.25. This will have the effect of shifting the feeFactor curve to the right:

Practical Consequences

The effect on various common swap fees can be computed. Here are the results of the proposed change, taking the format (swap fee : old feeFactor => new feeFactor), where feeFactors are rounded to two decimal places.

      0.1% : 1.00 => 1.00
      0.2% : 0.99 => 1.00
      0.3% : 0.98 => 0.99
      0.5% : 0.94 => 0.98
      1.0% : 0.78 => 0.94
      2.0% : 0.37 => 0.78
      3.0% : 0.11 => 0.57
      5.0% : 0.00 => 0.21
     10.0% : 0.00 => 0.00

I’m adding the equations referenced above in plain text here, in case anyone can’t see the images I uploaded.

As it stands, the current feeFactor looks like this:

feeFactor = exp( -(fee/2) ^ 2 )

I’m proposing to generalize it like this:

feeFactor = exp( -(k*fee) ^ 2 )

So the current value of k is 0.5, and this proposal is to change k to 0.25.