Products
Staking & Locking
Locking $BCF (or a basket LP) into the bcLocker converts it into a non-transferable veBCF NFT. veBCF grants three rights: (a) gauge vote weight, (b) boosted emissions on any basket you hold, and (c) a pro-rata share of protocol fees.
Coming soon
This module is not live yet. The mechanics below describe the design that ships in a later phase.
Lock parameters
Min Lock
6 months
≈ 26 weeks
Max Lock
48 months
≈ 208 weeks
Decay
Linear
toward 0 at expiry
Early exit
50% penalty
to insurance module
Vote-weight decay
A lock's voting and boost weight decays linearly to zero at expiry. This forces active re-commitment and prevents zombie lockers from siphoning fee flow indefinitely.
veBCF weight decay — ve(t) = amount · (T_end − t)/T_max10,000 BCF locked · T_max = 48 mo
ve_i(t) = amount_i · max( 0 , ( T_end,i − t ) / T_max ) with T_max = 48 months. Locking 10,000 BCF for 24 months: ve_i(t=0) = 10,000 · (24 / 48) = 5,000 veBCF ve_i(t=12 mo) = 10,000 · (12 / 48) = 2,500 veBCF ve_i(t=24 mo) = 0
Fee share
Every block, the FeeSplitter forwards 70% of protocol revenue to the bcLocker fee vault. A user's claim is proportional to their time-integrated veBCF balance:
FeeClaim_i(Δt) = ( ∫_Δt ve_i(t) dt ) / ( ∫_Δt ve_total(t) dt ) · R_Δt Where R_Δt is the total USDC revenue routed to lockers over Δt.
Revenue sources feeding the locker vault
| Source | Rate | Locker share (70%) |
|---|---|---|
| Basket management fees | 15–25 bps of TVL | 10.5–17.5 bps |
| Redemption fees | 5 bps of exits | 3.5 bps |
| Rebalance internalized spread | ≈2 bps of turnover | 1.4 bps |
Locker yield — worked example
Baseline: $500M TVL across baskets.
Revenue waterfall → 70 / 20 / 10 split$500M TVL · 50% collateralized
Annual protocol revenue:
R_mgmt = 0.0018 · 500,000,000 = 900,000 USDC
R_redeem = 0.0005 · 100,000,000 = 50,000 USDC
R_spread = 0.0002 · 250,000,000 = 50,000 USDC
────────────────────────────────────────────────────────
R_total = 1,000,000 USDC
Locker share (70%):
R_lockers = 700,000 USDC
If 60% of circulating supply is locked, avg ve = 40% of amount:
ve_total ≈ 0.60 · 300M · 0.40 = 72,000,000 veBCF
Yield per veBCF (annualized):
700,000 / 72,000,000 = $0.0097 / veBCF / yearLocker APR translation
A user who locks 10,000 BCF for 48 months receives 10,000 veBCF (max weight), earning ≈ $97 / yearin USDC fees at current fee sources. Fee flow scales linearly with basket TVL, and boosted emissions plus dividend passthrough sit on top of it.
Early exit
A locker can burn their lock early. The penalty is 50% of the current time-decayed amount, split 40% to the insurance module and 10% burned:
Withdraw_early(amount, t):
returned = amount · ( 1 − 0.50 · ( T_end − t ) / T_max )
Example: 10,000 BCF locked for 48mo, exit at month 12
returned = 10,000 · ( 1 − 0.50 · (36/48) )
= 10,000 · ( 1 − 0.375 )
= 6,250 BCF
penalty = 3,750 BCF → 3,000 to insurance, 750 burned