Badger Finance
bveCVX: Handling of Additional Rewards
At any given time, Convex Finance may decide to distribute additional rewards to vlCVX holders. This includes bveCVX depositors. These rewards can be distributed for different periods of time (short and long terms) and at different rates (high or low APR).
In order to handle these extra rewards in the most cost-efficient manner that leads to the best user experience, the Badger team came up with the following process.

Process Description


Additional rewards emitted to the bveCVX strategy will be handled like bribes and be sold for both BADGER and bveCVX and distributed to bveCVX holders. This represents the most cost-efficient process for the DAO and allows for users to continue to receive their rewards in the same token denominations; producing the best UX.

The Process in Detail

Let's take cvxFXS for example. Recently, Convex Finance began to emit rewards in the form of this token to all vlCVX holders at a rate of ~0.17% APR. Modifying the strategy to auto-compound these rewards, sell them for BADGER or emit them in the form of a helper vault would have led to low cost efficiency and less than desirable emissions.
Instead, the current contract logic was leveraged to handle these rewards in the same way bribes are handle. That is, by selling them for bveCVX and BADGER in batch through the BribesProcessor contract externally. In order to do so, the following actions were incorporated into the regular bribes processing flow:
  1. 1.
    Once every 2 weeks, the Tech Ops Multisig will call sweepRewardToken(reward token address) on the bveCVX strategy. This call will be executed atomically along with the usual call of claimBribeFromVotium(). As the name suggests, the sweeping function will transfer all rewards (cvxFXS for instance) into the hardcoded BribesProcessor. Once these two functions are called, the BribesProcessor will contain all bribes tokens plus any additional swept rewards.
  2. 2.
    The BribesProcessor will find the most optimal swapping route on-chain and compare that to a Cowswap quote for each reward and bribe token against wETH. Each token will be swapped through its most optimal path for wETH
  3. 3.
    In accordance to BIP-87, all wETH will be sold for BADGER and bveCVX through the most optimal route and at the proportions stablished by the BIP. DAO fees will be taken and the rest of the tokens will be distributed as stipulated by the BIP (NOTE: reward tokens such as cvxFXS will be considered bribes for the purpose of this process):
BIP-87: Bribes handling distribution
4. bveCVX holders will receive the BADGER and bveCVX rewards, a by-product of this process, at an increased rate that reflects the additional rewards received by the strategy
The following Multisig script is used to execute these actions. As you may have noticed, the only modification to the usual Bribes processing flow was to call the sweepRewardToken function along with the bribes claiming actions.