veYB
veYB is what you get when you commit YB to the protocol for a defined period. You give up liquidity on that YB; in exchange, you vote on governance and gauge weights, and you share in protocol fees. The longer you commit, the more voting power you get per YB.
Design origin
Vote-escrow (ve) governance was pioneered by Curve in 2020. veCRV, introduced with the original Curve DAO, let CRV holders lock their tokens for up to four years in exchange for voting power that decays linearly toward the unlock date and a share of protocol trading fees. The pattern has since been adopted by a wide set of protocols. YieldBasis inherits the same core ideas: four-year maximum lock, linear voting-power decay, weekly fee distribution to lockers, and gauge voting to direct emissions.
Two changes are worth calling out, and the reason for each.
veYB is represented as an ERC-721 NFT, not a fungible ERC-20. veCRV is non-transferable by design: an address locks CRV, and the resulting veCRV cannot move. That is a strong safety property but rules out transfers even when both parties have locks under the same terms. An NFT-based position can be transferred under constraints. YieldBasis allows transfer between two positions that are both max-locked or permalocked, with zero active gauge votes on the sender side. The constraint preserves the slope-accounting invariants that veCRV's non-transferability used to enforce; the NFT representation lets a user move a position to a new address when those invariants are met.
veYB adds an optional permalock. A standard four-year lock decays: voting power drops linearly, and the holder must re-extend to maintain full weight. Some stakers never intend to exit. Permalock holds the lock at the four-year maximum indefinitely, with no decay and no withdraw path. It is a one-way commitment for holders who want the governance weight and fee flow without the roll-forward overhead. The permalock toggle is reversible (subject to zero active gauge votes), but while on, the position cannot be withdrawn.
Fee-distribution cadence match veCRV closely. Weekly epoch boundaries land on Thursday 00:00 UTC, the same schedule Curve uses. The FeeDistributor contract applies a four-week smoothing window to incoming fees, which is Curve's approach to preventing a single volatile epoch from concentrating payouts.
Why lock YB
Unlocked YB has no utility by itself. Locking turns it into veYB, which gives you:
- Governance voting power. Vote on proposals, protocol parameters, and gauge approvals.
- Gauge voting power. Direct YB emissions across liquidity pools. See Vote for Gauges.
- Fee revenue share. Weekly distribution of protocol admin fees in ybBTC tokens (see below).
How much veYB you get
Formula:
veYB = YB_amount × (lock_duration / 4_years)
| Lock duration | veYB received per 1 YB |
|---|---|
| 4 years (max) | 1.00 veYB |
| 2 years | 0.50 veYB |
| 1 year | 0.25 veYB |
| 6 months | ~0.125 veYB |
| 1 month | ~0.021 veYB |
| 2 weeks | ~0.010 veYB |
| 1 week (minimum) | ~0.00479 veYB (rounded to 0.0048) |
Voting-power decay over time
If you lock 1,000 YB for 2 years on day 0 (= 500 veYB), on day 365 your voting power is ~250 veYB. On day 700 (30 days from unlock), ~10 veYB. At unlock, 0.
Voting power decays linearly toward zero at the unlock date. Permalocks are the exception: they hold at full power indefinitely.
Unlock cadence
Unlock times round to the nearest week and occur on Thursday 00:00 UTC.
Lock styles
Normal decaying lock. 1 week to 4 years. Voting power decreases linearly toward zero as unlock approaches.
Permalock.
- Keeps your lock at the 4-year max, so your voting power never decays.
- You can toggle permalock on/off at any time, subject to the transfer-clearance check below.
- To turn permalock on, your currently-allocated gauge votes must sum to zero (reallocate to no gauges first, then toggle, then re-allocate).
Fee revenue share
Protocol admin fees are distributed to veYB holders through FeeDistributor.vy (the contract that collects weekly admin fees and lets veYB holders claim their share):
- Claim cadence. Every Thursday 00:00 UTC.
- Distributed in ybBTC tokens per market (yb-tBTC, yb-cbBTC, yb-WBTC, yb-WETH, etc.). When claiming, you receive one balance per active market.
- 4-week smoothing. Fees collected in a given epoch are split across the next four epochs to smooth out volatility-driven spikes.
Transferring a position
You may expect transferring a permalock to be unrestricted. The recipient's lock state must match.
Each veYB position is an ERC-721 NFT.
Normal decaying locks are non-transferable. Max-locked positions (4-year or permalock) can be transferred, but only under strict conditions.
- Both sender and receiver must have YB locked for the maximum duration (4 years) or be permalocked.
- Transfer is approved by
GaugeControllervia thetransfer_clearance_checkerhook. The sender must have zero allocated gauge vote power at transfer time (otherwise slope accounting for active votes would corrupt). - On transfer, the sender's NFT burns; its amount merges into the receiver's position. This is a merge, not a standard ERC-721 send.
Due to how the contract handles merges, the receiving wallet must already hold a max-locked position for the transfer to succeed. If the receiving wallet has no veYB, max-lock at least 1 YB there first, then perform the transfer.
Gauge voting
veYB grants voting power over gauge emissions. Votes apply instantly. There is a 10-day cooldown per gauge.
Full mechanism: Gauges & Emissions.
Related
- YB Token
- Tokenomics
- Proposals
- Gauges & Emissions
- Lock YB for veYB
- Vote for Gauges
- Dev: VotingEscrow — the contract that stores veYB locks and handles lock curves.