BIP || Token migration & distribution v3

BAO Token Migration and Distribution Proposal

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 implement a BAO token migration that would interact with the staking contract and veBAO emissions model proposed in the Annual roadmap concept as well as unlocking of the tokens. There is also a lot of explanation on the details of the change in governance as a whole and some future decisions the community will need to decide for the vote escrow system.

This proposal will define the distribution function for locked BAO tokens, the necessary supply reduction to implement voting escrow alongside the new BAOv2 token, as well as the operational changes that must accompany this proposal. A separate BIP will follow to define the technical details of the staking contract and the veBAO model.

____________________________________________________________________

Issues and Hypothesis

The following paragraphs highlight problems with the current governance model and explain why changes must be made moving forward.

(summary) 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). To briefly reiterate on previous discussion, this is because with the current state of how many locked tokens there are relative to circulating tokens as a result of the farming era that took place on both chains, the rate at which the original linear 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. To explain further, this is given that we have not yet successfully scaled bao-markets (hard-synths on main-net), before the original unlock time was scheduled, which was/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).

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 and distribution always need to go through MasterFarmer.

This also means that the current locked BAO and future minted BAO needs to follow the same rules (given we do not migrate to a new token/governance system).

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.

Future incentives would be hard to distribute

It is difficult right now to give BAO incentives on other chains/layer 2’s and impossible to do staking rewards outside MasterFarmer. The DAO does not have the flexibility currently to reward or give incentives in different forms or modalities.

Bao coupons locking issues

Bao coupons were a bad idea from the start. It has been admitted by the galaxies for a few months that we need to look for an alternative, and that BAO.cx currently causes unnecessary complexity as to how to handle cross chain governance/voting power.

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% now, 95% locked).

The vested BAO is still in the founder 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 about how to proceed with the dilution of the BAO that could happen continuously for 3 years. This distribution proposed gives a reasonable rate of dilution to all locked BAO holders that will not break the system while allowing for the DAO to effectively migrate to a vote escrow model.

____________________________________________________________________

Solution

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

By taking a snapshot of the locked Bao tokens on main net and also the bao coupons locked on xDai, we will be able to unify on a Bao V2 contract all the Bao holders migrate to in order for them to partake in BAO governance on ethereum main-net, but also be considered in the veBAO model for revenue sharing/governance by the protocol if they choose to lock.

This concept also proposes a way to manage locked tokens over new contracts.

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

  • Snapshot of ETH / xDai
    • Locked BAO on ethereum main-net and xDAI
  • Distribution/Migration=> for those with locked BAOv1 (on main-net and xDAI), an unlocking of 1000:1 BAOv2 tokens will be distributed to those addresses with locked bao in accordance with the distribution function and claiming options proposed below, on ethereum main-net.
  • veBAO details relating to the token distribution
  • Remove tBAO in order to move toward veBAO and convert bao coupons to BAOv2 (xDai => Ethereum)
  • Notify CEXs of migration
  • Protocol multi-sig plans
  • Liquidity providers migration, to be determined, still need more discussion to make a definitive plan here

____________________________________________________________________

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.

____________________________________________________________________

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 is to 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 implementation we will be using from curve finance’s contracts causes errors when using larger numbers for some operations.

SECOND STEP
The 3 options for locked bao holders

As for veBAO with regards to the distribution, the smart contract galaxy proposes we allow for 3 possible outcomes for those with locked BAO.

  1. Choose to lock your balance directly into voting escrow BAO (veBAO) for a minimum of 3 years. 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 benefits include;

    • Ownership of a certain percentage of fees the protocols makes.
    • Vote on governance proposals.
    • After the lock has concluded you will have access to your tokens again.
  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.

  3. Alternatively, users that perform a liquid distribution can choose to end their distribution early in exchange for the remainder of their tokens being unlocked immediately, minus a large slashing fee. The slash fee is based on the slash rate function defined below, and their distribution will be ended at that point. In order to choose this option the user has to manually choose to do so at some point after starting their liquid distribution. Users who do not elect to end their distribution early will not be subject to any slashing fees when they claim their tokens.

All the slashed balances that come from users ending their distributions early will be collected by the protocol. The community has yet to decide where the slashed balances will go (separate BIP to decide after this one), but most practically they would go to the community for future incentives to people who are long term invested in BAO (veBAO holders, liquidity providers, products users, etc.).

Proposed Distribution Function:

-Here is the function the smart contract galaxy currently has proposed in the latest governance concept weighted more heavily to the end in order to make a larger slash for those that want to dilute the token faster and sell.

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

-proposed 3 year distribution function

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. The function is proposed as a realistic balance between people who choose one 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.

If you would like to experiment around with this model, there is a desmos simulation for both the distribution and slash function side by side to get an idea of how much BAO will be available at each timestamp within the 3 year long distribution.
HERE: Distribution Model

Vex has also created a distribution simulator you can experiment with to plug in different weightings for the three options defined above. HERE: https://dist.baofinance.dev/

____________________________________________________________________

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 factoring in the supply reduction as mentioned previously. BAOv1 tokens that are migrated will be burned.

To summarize, 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.

____________________________________________________________________

veBAO details relating to the token distribution

With the distribution proposed above, we will now have an unlocking process taking place over the 3 year time period that gives everyone a proportional weighting of the tokens they were promised in the original unlock of locked BAO balances.

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 in terms of emission and we thought to hardly 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 it is in Curve Finance). As the emissions curve diminishes rewards over time, and with a soft cap that will bootstrap the BAO emissions curve, we will go over the original hard cap (accounting for the 1000:1 reduction).

The BAOv2 tokens from the distribution will be pre-minted according to the supply of the BAOv1 tokens and those who decide to lock in veBAO from the BAOv2 distribution will be the first to receive the benefits from veBAO (ownership over fees and voting power for proposals).

In using the vote escrow governance model, the 2 groups that are incentivized will be BAO token lockers (veBAO holders) and/or liquidity providers (LP tokens) that deposit their LP into liquidity gauges for BAO emissions. In order to receive benefits from the vote escrow system the user must be actively locking tokens or depositing LP tokens in the gauges.

This means passive token holders are diluted and do not receive benefits (no ownership over fees and no voting power) from the system in accordance with the vote escrow model, as the idea is to only incentivize people that support the DAO more actively.

A separate BIP proposal/concept is necessary for deciding certain parameters of the emissions function and the voting escrow contracts, given our initial supply number will be determined by the distribution.

Curve Finance Governance Token Example (veCRV)

  • For reference, the initial Curve token supply started at ~1.273 billion tokens.
  • The current supply of the Curve governance token on main-net, after several years of vote escrow mining, is now ~1.755 billion from the starting supply in August 2020 of ~1.273 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

____________________________________________________________________

Operational changes

tBAO + Bao Coupons 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. After the BAOv1 tokens have been bridged to main-net the swap contract from BAOv1 to BAOv2 tokens can be used to migrate to the new token.

Exchange migrations

We will notify all centralized exchanges of the migration so that they do not continue support of the old token. We will not request they migrate to the new token; however, they can choose to do so on their own volition. The protocol is not going to request any centralized exchange listings but we do not oppose them doing so on their own.

Protocol multi-sig plans

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.

____________________________________________________________________

Liquidity provider (LP) migrations, highly subject to change, more so than any other section

Any current BAOv1 liquidity providers will have to move to new BAOv2 liquidity then stake those new LPs into its respective veBAO gauge for BAOv2 rewards when veBAO is deployed. This can be done through the respective AMM protocol the liquidity provider is on (Uniswap or Sushiswap). Users could also potentially migrate through a BAO liquidity migration contract that converts the LP with one transaction through our UI.

The treasury could seed liquidity for incentivized LPs and stake them into the veBAO liquidity gauges along with the rest of those that chose to provide liquidity to 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)

Reference List of LPs we will need for governance, operations, and products (BAO token, baskets, markets in the very near future):

Token/operations:

  • BAOv2/ETH LPs, BAOv2/USDC LPs

Bao Markets:

  • baoUSD-3CRV curve LP token
  • others later?

Bao Baskets:

  • bSTBL-3CRV curve LP tokens
  • others later?

Bao Main-net Collateral strategies using baskets and markets simultaneously:

  • bSTBL-baoUSD Curve LP token (baskets + markets)

____________________________________________________________________

Alignment

For this proposal to be successful, it must be aligned/implemented around the same time as the staking contract and veBAO model get deployed/start in order to preserve incentives for token holders and liquidity providers during the change toward the new governance model.

____________________________________________________________________

Conclusion

This solution will need work/testing for the galaxies to accomplish and verify the security/integrity of the process. It is also in our interest to get these contracts audited beyond simply testing them internally. The community will need to approve a BIP to verify payment to an auditing firm for each piece. This will benefit the DAO in the long term by resolving many of the issues stated at first. While the distribution model/parameters are still subject to change, this proposal is to get 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 deploying/starting veBAO as a governance model, incentivizing liquidity, and distributing fees for all of our products (Bao Baskets, Bao Markets, and future products).

____________________________________________________________________

Proposals that proceed this one

  1. Voting on the supply parameters for voting escrow BAO and the respective liquidity gauges we will incentivize to start
  2. What will we do with the slashed balances that come from the distribution/unlocking
  3. Voting to Audit the BAOv1 to BAOv2 swapper contract, BAOv2 token contract, Distribution contract, and BAO voting escrow contracts

____________________________________________________________________

References

Annual agenda concept https://gov.bao.finance/t/the-next-path-for-bao-annual-roadmap-bip/865

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

4 Likes