Token Migration & Distribution [v4]

Abstract

Following the passing of BIP-6, we know that we must revisit how the unlocking/governance system of BAO works in accordance with a vote escrow model.

This proposal aims to agree

  • A BAO token migration including the necessary supply reduction to implement veBAO and a new emissions model.
  • A framework for a new governance model surrounding veBAO
  • The distribution function for locked BAO tokens, including flexibility to unlock early, unlock over 3 years or lock straight into veBAO.
  • Operational changes that must accompany this proposal.

Liquidity provider migration and LPs we will initially incentivize in gauges

Out of scope for this proposal, and must be agreed upon in future BIPs

  • The supply parameters for BAO
  • The respective liquidity gauges weightings for epoch 1
  • What will we do with the slashed balances that come from the distribution/unlocking
  • Approvals for audits on the BAOv1 to BAOv2 swapper contract, BAOv2 token contract, Distribution contract, and BAO voting escrow contracts

____________________________________________________________________

Issues and Motivation

Short term governance power is easy to acquire

The BAO Smart Contract Galaxy has been exploring options to safely and fairly move away from our original governance model using the Bao MasterFarmer contract and the accompanying Bao Token (both on main-net and xDAI/Gnosis chain).

Using a veBAO model, similar to veCRV will allow Bao to align governance and incentives with long term holders and liquidity providers.

Token unlocking schedule was too aggressive for the project to safely handle

The rate at which the original linear token unlock was scheduled to happen would have caused too large of a dilution (inflation of the Bao token supply) for the protocol to safely handle. Bao-markets (hard-synths on main-net) have not been scaled before the original unlock time was scheduled, which is necessary to help mitigate the dilution of our governance token. More details can be read in previous governance concepts and the proposal to delay the unlock (reference BIP-6 => present).

The proposed mechanisms for distribution of locked tokens aim to unlock tokens sustainably, with incentives that align most with long term holders, while allowing anyone to exit their positions early if they choose.

Token ownership locked in MasterFarmer contract

Due to the design of different contracts, the BAO token contract is permanently owned by the MasterFarmer contract, meaning that BAO minting, distribution and incentives always need to go through MasterFarmer, restricting Bao’s ability to incentivise behaviour on other chains.

A token migration allows us to define new mechanisms for minting and distribution built around veBAO

Total BAO hard cap is too high for current veBAO contract implementation

As specified in the original annual roadmap concept, the veBAO contract, which would be based on the veCRV contracts, has difficulties handling the large hard cap of BAO (over 1T).

A token migration with a redemption rate of 1000:1 could be implemented to remove this limitation allowing us to use a tried and tested vote escrow model for our governance.

Bao coupons locking issues

BAO.cx currently causes unnecessary complexity for us to handle cross chain governance/voting power.

Migrating to a new token will allow us to combine BAO.cx and BAO tokens and eliminate this complexity, allowing all holders to participate in governance and veBAO on ethereum main-net

Founder share vesting for core members is not defined properly

There are some galaxy members who have vested BAO in part of their agreements to work for the DAO. The vested BAO comes from the founder wallet and follows the same distribution pattern as the rest of the MasterFarmer users (5% liquid, 95% locked).

The vested BAO is still in the founder’s wallet and is not properly vested other than being locked with the rest of the BAO tokens. They aren’t also in the possession or directly assigned to those galaxy members.

This proposal does not aim to discuss the distribution and allocation among galaxy members but to provide a solution to this particular issue.

Unlocking model has to be redefined alongside the veBAO model

The DAO can only play currently with the last block until the end of the unlock period to determine the amount of BAO that is released on each block and for how many years as the unlocking is linear.

The annual roadmap concept of this September split the community regarding how to proceed with the dilution of the BAO that would happen continuously for 3 years.

The proposed distribution aims to control the rate of dilution of BAO tokens such that game theory/incentives are aligned to effectively migrate to a vote escrow model, which relies on locking tokens in veBAO being an attractive option for newly circulating tokens.

____________________________________________________________________

Implementation

The implementation proposed consists of undertaking a token contract migration that would give more flexibility in the distribution and future use of tokens.

It will consist of many components that would be described thoroughly in the next sections

  1. Snapshot of ETH / xDai Locked BAO
  2. Locked token distribution
  3. Circulating token migration
  4. veBAO details relating to the token distribution
  5. Decomission tBAO + BAO.cx migration
  6. Notify CEXs of migration
  7. Protocol multi-sig plans
  8. Liquidity providers migration and new incentivized LPs

1. Snapshot of ETH / xDai locked BAO

A snapshot will be taken for wallets that have locked BAO on main-net and Bao Coupons locked on xDai. The total per address across both chains will be recorded for the total supply number to be given on ethereum main-net, scaled down by 1000 as stated previously.

2. Locked Token Distribution

The smart contract galaxy proposes to unlock the tokens that were promised to Bao liquidity farmers using the steps proposed below.

First Step

Define a migration to a new token (BAO v2) that reduces the supply by a factor of 1,000 relative to the original BAO token (~1.5 trillion → ~1.5 billion tokens). This is because the math used inside of the voting escrow contract we will be using from curve finance causes errors when using larger numbers for some operations.

Second Step

Locked Bao holders will be given 3 options they can take with their locked positions. Any distribution will only begin once manually initiated by the wallet owner, then follow the option/s selected below:

  1. Choose to lock your balance directly into voting escrow BAO (veBAO) for a minimum of 3 years (the length of the unlock period). After you choose to lock into veBAO, you will no longer be able to participate in streaming of liquid BAOv2 tokens as all the tokens from your distribution will be converted to a locked veBAO balance. Locking into veBAO relinquishes access to your tokens as they will be locked, but you will get the benefits of having veBAO. veBAO gives ownership of a percentage of protocol fees and the ability to vote on governance proposals. Tokens locked into veBAO will not be subject to any slashing penalty.

  2. Choose to perform a liquid distribution over 3 years. Over the course of the 3 years, 100% of your locked tokens will be distributed to you along the distribution curve defined below. Users can claim (this costs gas) as many times as you would like throughout this distribution, as long as you have accrued more tokens since your last claim. All tokens claimed using this method are not subject to any slashing penalty.

  3. Users that perform a liquid distribution can choose to end their distribution early at any time after the distribution starts. A large slashing penalty will be applied to the tokens unlocked early, while all tokens already unlocked have no slash fee applied. The slash fee is based on the slash rate function defined below which will end their distribution and allow them to receive the rest of their tokens (minus slash fee) immediately. In order to activate this option the user has to manually start their distribution, then at some point afterwards decide to end it early.

All the slashed balances that come from users ending their distributions early will be collected by the protocol. A separate BIP will follow this one so the community can agree on how the collected slash fees should be used, potentially including future incentives for veBAO holders, liquidity providers, products users, etc.

Proposed Distribution Function

-X in this piecewise function below is the number of days (the end being the 1095th day, AKA 3 years)

1250×431 20.3 KB

A graph showing how BAO will unlock over time following the proposed function

1600×623 139 KB

The function we’ve defined is designed to weight distribution towards the end, so those who wait longer are rewarded more. Any function that does not have a bias to the end of the 3 years will give more incentive for people to slash early and sell the tokens rather than continue to participate in the DAO/vote escrow system.

We believe the function proposed provides a good balance between people in each of the three distribution options and their respective interests.

Proposed Slash Function

X is days since start of distribution

0 <= X <= 365 || (100 -.01369863013x) (starts at 100% slash and approaches 95% slash)

365 < X <= 1095 || 95 constant (constant at 95% slash)

The slash function proposed starts at the same date the address selects to start their BAO distribution. The slash function starts at 100% on day 0, and approaches a constant 95% slash on day 365 and thereafter. On the day that the user chooses to end their distribution early (3rd option), the slash function defines how much of their remaining distribution will be slashed. The user will receive the remainder of this percentage of their remaining distribution immediately.

Putting the distribution and the slash function together

In the graph above, the blue points are the state of both curves respectively. The orange point is the percentage of their total distribution that the user will be able to claim if they choose to end their distribution at that point.

Experiment with the model

We encourage you to to experiment with this model, there is a desmos simulation for both the distribution and slash function side by side, allowing you to get an idea of how much BAO will be available at each timestamp within the 3 year long distribution.

Distribution Model 2

Vex has also created a distribution simulator you can experiment with to plug in different weightings for the three options defined above.

Distribution Simulator

3. Circulating Token Migration

For BAOv1 that is already circulating, we will make a simple swapping function that converts the BAOv1 balance to the resultant BAOv2 balance.

BAOv1 tokens that are migrated will be burned.

All tokens whether unlocked/circulating or locked will be converted and given at a supply reduction of 1:1,000 (.001) relative to the ~1.5 trillion BAOv1 tokens. The new initial supply will be ~1.5 billion BAOv2 and will increase dependent upon issuance from voting escrow emissions.

4. veBAO details relating to the token distribution

This proposal aims to agree on an emissions model to use. If accepted, a separate BIP is necessary for deciding certain parameters of the emissions function and the voting escrow contracts. The proposed model is described below.

Current (BAOv1) emission model

In BAOv1, new token emissions were made using the MasterFarmer contract and they were distributed to liquidity pool providers who staked their LP Tokens into our farms. There was a soft cap of 1T and a hard cap of 1.5T. Our current total supply is slightly larger than our soft cap and we were unlikely to reach the hard cap.

This supply cap is going to change in BaoV2 using the vote escrow model, because we will introduce veBAO alongside a token minter contract in the vote escrow system which mints new supply/emissions over time (as Curve Finance have done).

Proposed BAOv2 emission model

BAOv2 tokens will be pre-minted according to the supply of the BAOv1 tokens.

Emissions will follow a curve that diminishes over time and will result in us going over the original hard cap (accounting for the 1000:1 reduction).

Those who decide to lock tokens in veBAO will have ownership over fees, voting power for proposals and a boost to LP rewards, weighted by their number of veBAO, but will receive no new BAOv2 emissions.

Liquidity providers (LP tokens) that deposit their LP tokens into liquidity gauges will receive new BAOv2 tokens based on the amount of liquidity they provide and the amount of boost they apply to the LP they have in the gauge. In order to boost your LP in the gauge you will need a veBAO balance to do so; the max boost is 2.5x. The gauge weight of the LP you deposit will also determine the rewards available overtime for that specific pool. LPs with the highest gauge weights will get the most BAOv2 emissions.

The weightings of LP gauges are governed by veBAO holders. Passive token holders will have no voting power and will not receive any share of revenue.

The goal of this model is to align incentives towards the behaviours the project most desires. By giving voting power only to locked tokens, those whose long term goals are aligned with the project will have the easiest time accruing governance power. They will have the ability to regularly adapt protocol incentives via the liquidity gauges to help ensure it is running optimally and how the community chooses. By giving new emissions only to liquidity providers, and a boost for locking those tokens, we can create a positive feedback loop. As liquidity providers are incentivized to lock new BAOv2 tokens to increase their boost and earn protocol revenue instead of selling them, future emissions are more effective incentives. More effective rewards lead to more liquidity and more revenue, increasing the reasons to lock BAOv2 tokens in veBAO and effectiveness of rewards further.

Curve Finance Governance Token Example (veCRV)

For reference, veBAO code will be forked from veCRV, so will behave similarly. It is described below.

  • The initial CRV token supply in August 2020 was ~1.273 billion tokens.
  • The current supply of the CRV, after several years (2022) of vote escrow mining, is ~1.755 billion
  • After the vote escrow model started for veCRV, Curve liquidity gauges received the future Curve token supply/emissions beyond the initial Curve supply (~1.273 billion)

Here is Curve’s governance token inflation schedule below in the context of veCRV

image

5. Decommission tBAO + BAO.cx migration

Incentives to tBAO (on xDAI) will be removed and those with staked bao coupons will unstake, swap BAO.cx to BAOv1 using the 1:1 contract on xDAI (the DAO multi-sig will fund these swaps), then bridge BAOv1 tokens back to main-net. Once there, the swap contract will be available to change from BAOv1 to BAOv2 tokens

6. Exchange migrations

We will not request that centralized exchanges migrate to the BAOv2 token, however we will notify them of the migration so that they do not continue to support the old token.

7. Protocol multi-sig

All Dao wallets/multi-sigs will migrate BAOv1 to BAOv2 tokens, any locked BAO will follow the same distribution as all other locked BAO. Liquidity will be migrated over and then added to liquidity gauges under the new veBAO model.

8. Liquidity provider (LP) migrations (highly subject to change)

When veBAO is deployed, any current BAOv1 liquidity providers (BAOv1/ETH and BAOv1/USDC LPs) will have to move to new BAOv2 liquidity then stake it in a veBAO gauge for BAOv2 rewards.

The treasury will seed liquidity for incentivized LPs and stake them into the veBAO liquidity gauges in the same way as anyone else that chose to stake in liquidity gauges for veBAO emissions.

Only EOAs (Ethereum wallet that is not a contract) will be able to vote on governance proposals; however, the community can vote to add whitelisted smart contracts that will be able to vote (similar to convex and curve). The protocol treasury will refrain from voting.

There will be a separate BIP after this one detailing all the BAO liquidity gauges we will add to incentivize a specific group of LP tokens for both Bao Baskets and Bao Markets

Starting gauges

These are the LPs we will incentivize and seed liquidity for under the new governance model

  • BAOv2/ETH UNI LP
  • baoUSD/3CRV Curve LP
  • bSTBL/3CRV Curve LP

_________________________________________________________________

Conclusion

For the proposed migration from BAOv1 to BAOv2 to be successful, it must be implemented around the same time as the staking contract and veBAO model in order to align incentives for token holders and liquidity providers during the change toward the new governance model.

This solution still needs to be verified to ensure the security/integrity of the process. It is also in our interest to get these contracts audited beyond testing them internally and recommend the community approve a BIP to contract an auditing firm for each piece.

This BIP should benefit the DAO in the long term by resolving many of the issues and improving the alignment of incentives throughout the protocol.

While the distribution model/parameters are still subject to change, this proposal will provide a definitive conclusion on whether the community accepts this distribution and token migration process.

Upon approval of this proposal, we are one step closer to starting veBAO as a governance model, incentivizing liquidity, and distributing fees for all of our products (Bao Baskets, Bao Markets, and future products).

____________________________________________________________________

References

Annual agenda concept The Next Path for Bao (Annual Roadmap BIP)

BIP-6 Annual agenda https://gov.bao.finance/t/bip-6-annual-agenda-changes-and-hard-synth-alpha/951 1

____________________________________________________________________

3 Likes

V4 is primarily a restructuring of V3, there are no significant changes to what is being proposed

1 Like

Looks great to me! Very thorough!

I’m excited, thanks for the extensive comprehendible explanation, besides the distribution simulator, broke my brain

1 Like