Skip to main content

Fees and veYB revenue

YieldBasis earns trading fees from two sources. It splits them between liquidity providers (LPs) and veYB holders on a curve set by the staking ratio. It also sends crvUSD borrower interest back into the pool to subsidize the rebalancing cost that LPs would otherwise pay.

Where fee value comes from​

Two sources feed yb-LP yield:

  • Curve Cryptoswap pool fees. LEVAMM holds Curve LP tokens as collateral. When the Cryptoswap pool earns trading fees, the LP tokens increase in value. That increase goes to LEVAMM and then to LT.
  • LEVAMM trading fees. Each trade against LEVAMM (usually by an arbitrageur through VirtualPool) pays a fee. The fee stays inside LEVAMM and increases the position's value.

All pool trading fees first raise the value of the pool LP tokens. The pool can spend part of that profit to re-center price_scale on the market price. The reserved profit fraction is the share of profit that re-centering cannot spend, so at least that share of the fees stays with LP holders. The rest is the rebalance budget, which also stays in LP value until a rebalance spends it. A larger rebalance budget gives closer price tracking and a lower headline fee yield.

The original Twocrypto design fixed the reserved share at 50%. In the v3 pools, Curve governance sets it per pool, and reserved_profit_fraction() on the pool returns it.

The pool also has its own admin_fee, a Curve DAO share of the protected profit. It differs from the YieldBasis admin-fee curve below. The pool code caps it at 90%. To read it, call admin_fee() on the pool.

Pool swap fees and fee policies​

Curve governance sets the fee parameters of each pool. Without a fee policy, the fee rises from mid_fee toward out_fee as the pool becomes more imbalanced. fee() on the pool returns the fee at this time.

The oracle-report policy, YBOraclizedPolicy, charges a lower fee on a corrective swap. A corrective swap moves the pool toward a fresh, signed Pyth USD price report of the asset and does not pass it. All other swaps pay the policy's fallback fee. Some pools can still run the earlier YBTwocryptoPolicy, which does not change the fee.

Deposits and withdrawals pay half the fee rate on the part that does not match the pool's balances. Under the oracle-report policy, that rate is the fallback fee, because the corrective-swap discount applies only to swaps. The fee flow below is the same with or without a policy. For the fee settings, and to check which policy a pool runs, see Pool policies.

Where fee value goes​

When fee value arrives at LT, LT divides it in this order:

  1. Recovery first. If the staked side is below its watermark, LT charges no admin fee until gains repay the staked side's loss. The rule needs at least 0.01 yb-LP in the gauge. LT splits each gain pro rata between staked and unstaked holders, and caps the staked share at the remaining gap. See Watermark and recovery.
  2. Admin-fee split. LT splits the remaining value between unstaked LPs and admin fees, based on the staking ratio. More staking sends more to veYB. The minimum admin share is Factory.min_admin_fee(). The Factory sets it to 10% at deployment, and governance can change it. The maximum is 100%, in the theoretical case where every LP stakes.

The split follows a square-root curve in the staking ratio (whitepaper Eq 24):

fa=1−(1−fmin⁡)⋅1−s/Tf_a = 1 - (1 - f_{\min}) \cdot \sqrt{1 - s/T}

where ss is staked supply, TT is total supply, and fmin⁡f_{\min} is the 10% floor:

Staking ratio s/Ts/TAdmin fee faf_aUnstaked share
0%fmin⁡f_{\min} (0.10)90%
50%≈0.364\approx 0.36463.6%
90%≈0.715\approx 0.71528.5%
99%≈0.91\approx 0.919%
→ 100%→ 1→ 0% (the return per unstaked share rises without bound)

Fee Distribution based on Staking Percentage

Unstaked ybBTC: 63.6%veYB: 36.4%
Staking % (s)Fee Distribution (%)● Unstaked ybBTC (63.6%)● veYB (36.4%)

How it works: As more ybBTC gets staked, the dynamic admin fee increases, diverting more fees to veYB holders (DAO). Unstaked holders see their fee share decrease, but with fewer unstaked tokens remaining, each still captures meaningful yield. Staked holders receive YB emissions instead of trading fees.

At low staking, admin takes a small share, and unstaked LPs keep most of the fees. At high staking, admin takes more, but the unstaked group is smaller, so the return per unstaked LP stays competitive. The mix moves toward an equilibrium. A DAO vote can change the admin-fee curve.

Pool fee flow: a governance-set share funds Cryptoswap rebalancing. The yb-LP share covers watermark recovery, then splits between unstaked LPs and veYB.Pool fee flow: a governance-set share funds Cryptoswap rebalancing. The yb-LP share covers watermark recovery, then splits between unstaked LPs and veYB.

A governance-set share of pool fees funds Cryptoswap rebalancing. During recovery, LT charges no admin fee. At parity, the rest splits between unstaked LPs and veYB.

How LPs see fees​

PositionWhere fees appearCadence
Unstaked yb-LPFundamental Value (PPS) risesContinuous
Staked yb-LPNot through PPS. Earns YB emissions (Token APR) insteadContinuous accrual. Claim at any time.
veYB holderWeekly distribution in yb-LP tokens, one per market (such as yb-cbBTC or yb-WETH)Every Thursday 00:00 UTC, smoothed over 4 weeks

Why veYB distributions arrive as yb-LP tokens​

When LT collects admin fees, it mints new yb-LP shares of that market to the FeeSplitter. The FeeSplitter sends a DAO-set share to the net-pressure reserve (see Net Pressure & the PID Controller) and the rest to the FeeDistributor. To read that share, call FeeSplitter.split_fraction(). So a veYB claim returns a bundle of market-specific tokens (one per market with pending fees), not YB or crvUSD.

You can hold each yb-LP token to keep earning Fundamental Value growth, withdraw the underlying asset, or sell the token.

Worked example​

Suppose a Cryptoswap pool earns $1,000 per day in trading fees, and its reserved profit fraction is 30%. The pool protects at least $300, which stays in LP value. Up to $700 can pay for re-centering price_scale, and the part that rebalances do not spend also stays in LP value.

Suppose rebalances spend the full $700, so $300 of value reaches LT. The staking ratio is 50%, and the staked side is at its watermark. The admin-fee curve gives about 36% to veYB. Suppose the FeeSplitter share is 15%:

  • About $109 goes to admin fees. About $16 goes to the net-pressure reserve, and about $93 goes to veYB holders through the FeeDistributor.
  • About $191 goes to unstaked yb-LP holders, as Fundamental Value growth. Staked holders receive YB emissions instead.

Refueling: subsidizing rebalancing​

YieldBasis sends borrower interest back into the Curve Cryptoswap pool as a donation. In LT.distribute_borrower_fees(), LT collects borrower fees from LEVAMM and adds them to the pool as a donation. For the contract call, see Dev: Refueling Loop.

A donation mints no LP tokens to a user. It increases the pool's donation buffer, which releases over the pool's donation window (7 days by default), not in one block. So Cryptoswap rebalancing has two sources: the rebalance budget from pool trading fees (the profit above the reserved share) and these donations.

Interest-rate recycling loop: LEVAMM debt accrues interest, LT sweeps it and donates it to the Cryptoswap pool, which funds rebalancingInterest-rate recycling loop: LEVAMM debt accrues interest, LT sweeps it and donates it to the Cryptoswap pool, which funds rebalancing
  • Compounding leverage: the mechanism that creates the rebalancing cost that refueling offsets
  • Pool policies: the policy contract that sets the pool's swap fee
  • Staked vs Unstaked: when staking is worth more than the Fundamental Value growth you give up
  • veYB: locking, claim cadence, voting power