Proposing Balancer Liquidity Mining

Fernando Martinelli
Balancer Protocol
Published in
6 min readMay 15, 2020

--

TL;DR: Balancer Labs proposes community owned governance tokens (BAL): liquidity mining schedule, mechanics, and motivation.

Since inception, our goal at Balancer Labs has been to decentralize and diversify governance of the Balancer Protocol. We have looked into several approaches and designs, and have landed on an approach we are proud to share: the Balancer Protocol Governance Token (BAL).

We believe alignment between token holders and protocol stakeholders is crucial for successful decentralized governance. More explicitly, we believe BAL tokens are the vehicle to drive alignment and participation in the protocol. BAL tokens are not an investment; BAL token holders should be people that interface with the protocol in some way, are committed to its future development, and want a seat at the governance table.

Balancer’s Most Important Stakeholders: Liquidity Providers

As a recap, Balancer protocol allows any Ethereum address to add liquidity in the form of tokens to existing Balancer pools, or even create their own pools.

Liquidity attracts traders, trading generates fees, and ultimately pool profitability attracts more liquidity. This is a flywheel effect that we are beginning to see happen within Balancer protocol.

Regardless of the venue, early liquidity providers take on more risks and opportunity costs: contract risk, low initial pool profitability, etc. We believe that these protocol users should get to participate early on in deciding how the protocol evolves. This is why we are proposing to implement the concept of liquidity mining: Balancer protocol would distribute BALs to liquidity providers, starting imminently. See below for more details on the proposal.

Future Balancer Versions and Governance Token

Balancer V1 launched without a native token, and confirmed our assumption that Balancer’s approach would resonate with the community. However, in order for the protocol to keep up with the fast evolving Ethereum and DeFi space, we are convinced that many new versions and continuous development of the protocol will be essential.

BALs are a key way of decentralizing the governance of the protocol such that it can remain resilient over time, protected from the failure of any single stakeholder. Our governance needs to be as resilient as our technology infrastructure.

We expect token holders to help guide the protocol to its fullest potential through experimentation and active participation, for example: implementing new functionalities, deploying the protocol on additional smart contract blockchains other than Ethereum, using layer 2 solutions for scaling, introducing a protocol level fee, etc. Anything contentious will certainly go to the BAL token holders for review.

Token Supply and Distribution

The total supply of BAL tokens will be 100M. 25M BAL tokens are initially allocated to founders, core devs, advisors and investors, all subject to vesting periods.

The remaining 75M tokens are intended to be mostly distributed to liquidity providers in the coming years. In the future, and with governance approval, tokens may also be distributed to strategic partners in order to foster the development of the protocol and its ecosystem.

The proposed amount of distributed BALs to liquidity providers is 145,000 per week, or approximately 7.5M per year. This means in the first year of BAL’s existence there would be 30% supply inflation off the initially allocated supply of 25M tokens. This high rate of supply inflation is meant to kickstart the distribution of governance rights of the protocol out to those who earn it.

The schedule of BAL distribution for the following years is going to be extensively discussed by the Balancer community, and we plan for it to ultimately be decided by BAL holders.

For full transparency’s sake, the seed series price of one BAL token was $0.60.

More Details on BAL Liquidity Mining

BAL Distribution Proportional to Liquidity on Balancer

To make the token distribution as fair as possible, we propose to give BAL tokens proportional to the amount of liquidity each address contributed relative to the total liquidity on Balancer. Since there will be liquidity in several different tokens, we propose to use the USD value of liquidity as the common measure.

In practice, every week Balancer Labs would:

  • Define the starting and ending block of the week. Both are chosen as the block with the closest timestamp to a fixed weekly time (e.g. Sunday 1:00pm UTC). Say for example the starting block for a given week is #10,100,000 and the ending block is #10,140,000.
  • Define snapshot blocks: at every 64 blocks (i.e. every ~15 minutes) counting backwards from the ending block until the starting block. For the example above, the snapshot blocks would be #10,140,000; #10,139,936; #10,139,872; and so on.
  • For each snapshot block, and for each Balancer pool, get the USD price for the tokens in the pool from CoinGecko and calculate the USD liquidity in each pool.
  • Since liquidity in pools that have lower trading fees contribute more to the protocol usage than liquidity in pools with high fees, we propose to multiply the USD pool liquidity by a feeFactor that weighs down pools according to their fee (in %):
  • This creates the following bell-shaped curve for feeFactor, which means for example that a pool with a 0.5% fee has a feeFactor of ~0.94 and a pool with a 1% fee has a feeFactor of ~0.78:
  • Calculate the proportional liquidity USD value that each liquidity provider has in the pool. The table below shows an example for a pool that has 100$ worth of liquidity (already corrected by the feeFactor):
  • Divide the weekly amount of BALs distributed by the number of snapshot blocks. Considering blocks lasting 15s, a week would have a total of 40,320 blocks (=7*24*60*60/15). Of these, there would be 630 snapshot blocks (=40,320/64). Considering 145,000 BAL distributed per week, the number of BAL distributed per snapshot block would be approximately 230 (=145,000/630).
  • For each snapshot block, calculate BAL tokens to be received by each address. This is done proportionally to the total liquidity each address has on all Balancer pools divided by the total protocol liquidity. The table below shows an example of final distribution for a snapshot block.

All the calculations described above depend exclusively on on-chain data and historical token prices openly accessible on CoinGecko. This whole calculation process will be fully auditable via an open source script and BAL distribution results will be posted to IPFS and referenced on Balancer’s twitter account.

Eligible Pools for Liquidity Mining

In line with the permissionless and non-custodial ethos of Balancer Protocol, there won’t be a whitelist of eligible pools. All liquidity providers will receive Balancer Protocol Governance Tokens as long as a USD price can be extracted from CoinGecko for at least 2 tokens present in their liquidity pools. Liquidity from tokens without such USD price is not eligible.

Only Balancer pools containing 2 or more tokens with a price listed on CoinGecko will be eligible for BAL liquidity mining

If for whatever reason data from CoinGecko is not available or faulty, the community will discuss options to solve this issue.

Come Join the Discussion

This is a proposal to the Balancer community and as such will be thoroughly debated in the coming days. Please make sure you participate and make yourself heard on our discord channel.

If this proposal is received enthusiastically by the community, an announcement will be made on our twitter account at least 48h before liquidity mining starts.

--

--