Cadabra 2.0
Cadabra (EN)
Cadabra (EN)
  • Introducing Cadabra
  • Cadabra's mechanics
  • Security and Audit
  • Short Overview
  • Community
  • Roadmap
  • Cadabra v1
  • Articles
    • Cadabra 2.0 vs 1.0. Advantages and Differences
    • High yield at the launch of Cadabra 2.0
    • ABRA emission + External Yield. Complementarity
    • ABRA Locking: why it’s essential and how it increases your yield
    • ABRA locking migration vs Unlocking. What to choose?
    • Strategies boost algorithm
  • Team
  • Strategies
    • Strategies
    • Yield sources
    • Epochs
    • Voting
    • Liquidity Rebalancing
    • Strategies' APR
    • Underlying Protocol Rewards (UPR)
  • Tokenomics
    • ABRA
    • Emission
    • Locking and veABRA
    • Contracts
    • v1 -> v2
  • Earn with Cadabra
    • Yield from Strategies (ABRA)
    • Holder bonus
    • Yield for Voting (UPR)
    • Yield for Locking (Rebase)
    • Referral Program
  • Referral Program
    • Referral Rank
    • Rewards and Bonuses
      • Emission for Referral Rewards
    • Team bonus and Binary Tree
    • v1 -> v2
  • Airdrop
    • Launch Airdrop (season 2)
    • Airdrop (season 3)
Powered by GitBook
On this page
  • 1. User Boost Factor
  • 2. User–Strategy Position Weight
  • 3. Token Distribution
  1. Articles

Strategies boost algorithm

"Value" in this text refers to amounts denominated in the same unit, typically USD or a specified token

The boost algorithm is as follows:

After each liquidity addition, a user's fixed pool share is calculated as:

Su=LPdepositTVLS_u=\frac{LP_{deposit}}{TVL}Su​=TVLLPdeposit​​

Where LPdepositLP_{deposit}LPdeposit​ is the value of deposited tokens and TVLTVLTVL is the value of all pools across all chains.

If the user already has a non-zero SuS_u^{}Su​ then the new share is added to the old one:

Su′=Su+LPdepositTVLS_u^{'} = S_u + \frac{LP_{deposit}}{TVL}Su′​=Su​+TVLLPdeposit​​

If the user withdraws LPwLP_wLPw​ amount of tokens out of his total LPuLP_uLPu​ amount of liquidity then the SuS_uSu​ is updated accordingly:

Su′=SuLPwLPuS_u^{'}=S_u\frac{LP_w}{LP_u}Su′​=Su​LPu​LPw​​

At any moment of time a user's working balance is defined as:

WBu=Su⋅TVLWB_u = S_u \cdot TVLWBu​=Su​⋅TVL

At the end of a reporting period (one day), we have:

  • WBuWB_uWBu​ — the time-weighted value of the working balance of the user u;

  • Du,sD_{u,s}Du,s​ — the time-weighted value of the deposit by the same user in strategy s;

  • APRsAPR_sAPRs​ — the annual percentage rate (APR) of strategy s

The user's total allocation over which the boost value calculated is:

Du=∑sDu,sD_{u} = \sum_{s} D_{u,s} Du​=s∑​Du,s​

1. User Boost Factor

βu=min⁡(1,  WBuDu)\beta_{u} = \min\left(1,\; \frac{WB_{u}}{D_{u}}\right) βu​=min(1,Du​WBu​​)
  • 10k in the pool and 100k in strategies → β = 0.1.

  • 20k in the pool (or more) and 20k in strategies → β = 1 (full boost).

2. User–Strategy Position Weight

Wu,s=Du,s⋅APRs⋅βuW_{u,s} = D_{u,s} \cdot APR_{s} \cdot \beta_{u}Wu,s​=Du,s​⋅APRs​⋅βu​
  • APR sets the priority between strategies.

  • A single β applies to all of a user's strategies.

3. Token Distribution

Let RRR be the total amount of tokens to be distributed during the period. Total weight:

Wtot=∑u∑sWu,sW_{\text{tot}} = \sum_{u} \sum_{s} W_{u,s} Wtot​=u∑​s∑​Wu,s​

The reward that should be allocated to a user for a specific strategy:

Rewardu,s=R⋅Wu,sWtot\text{Reward}_{u,s} = R \cdot \frac{W_{u,s}}{W_{\text{tot}}} Rewardu,s​=R⋅Wtot​Wu,s​​

If the allocated reward exceeds the reward corresponding to the baseline APR, it is capped at the baseline reward amount:

Rewardu,sbaseline=min⁡(Rewardu,s,  Du,s⋅APRs)\text{Reward}^\text{baseline}_{u,s} = \min\left(\text{Reward}_{u,s},\; D_{u,s} \cdot APR_{s} \right) Rewardu,sbaseline​=min(Rewardu,s​,Du,s​⋅APRs​)

The algorithm starts with the users with the highest Wu,sW_{u,s}Wu,s​, in the case where their reward exceeds the baseline the leftover tokens are simply counted towards the remaining RRR

PreviousABRA locking migration vs Unlocking. What to choose?NextTeam

Last updated 16 days ago