Skip to main content

Emission dynamics

YB emissions come from a reserve that decays exponentially. The GaugeController mints them with emit() on the YB token. The pace depends on staking in the gauges, the staking contracts of the markets. The staking ratio of a gauge is the share of the market's yb-LP supply that is staked in it. When less yb-LP is staked, the reserve releases YB more slowly.

How fast the reserve releases YB​

The emission reserve held 300,000,000 YB at deploy. The other 700,000,000 YB of the 1,000,000,000 YB maximum supply was pre-allocated, as Tokenomics shows. Each period emits a fraction of what remains, so emissions have no cut-off date.

When every gauge is fully staked, the decay has a 4-year e-folding time. In each e-folding time, the remaining reserve shrinks by a factor of e. If every gauge stays fully staked, any 4-year window emits about 63% of the reserve at its start. From the start of emissions, that is about 189,600,000 YB.

In practice, staking ratios are below 100%, so the taper is slower. The rate factor measures this effect. It is a number from 0 to 1 that combines the staking ratios of all active gauges. Emission rate formula defines it. The effective e-folding time is 4 years/rate_factor4\ \text{years} / \mathrm{rate\_factor}.

If every gauge has a staking ratio of 25%, the rate factor is 0.25=0.5\sqrt{0.25} = 0.5. The same decay then takes twice as long. The first 4 years emit about 39% of the reserve, or 118,000,000 YB. A rate factor of 0.25 (a staking ratio of about 6.25% in every gauge) makes the same decay take four times as long.

YB.max_mint_rate() does not change after deploy. It is about 7.93×10−97.93 \times 10^{-9} of the reserve per second, which gives the 4-year e-folding time. To check the supply, call YB.totalSupply().

Governance cannot change these parameters of the YB token contract. The reserve starts at a fixed value and decreases with each mint. Governance influences emissions only through gauge weights and staking (the rate factor).

The figure shows how much of the reserve remains over twenty years at rate factors of 1.0, 0.5, and 0.25:

Reserve remaining over twenty years at constant rate factors of 1.0, 0.5, and 0.25: exponential decay curves with no cut-off date. At a rate factor of 1.0, 37% of the reserve remains after 4 years.Reserve remaining over twenty years at constant rate factors of 1.0, 0.5, and 0.25: exponential decay curves with no cut-off date. At a rate factor of 1.0, 37% of the reserve remains after 4 years.

Reserve remaining over time, with each curve at a constant rate factor. A lower staking ratio stretches the same decay. None of the curves ever reaches zero.

Emission rate formula​

Over a time step Δt\Delta t, emit() mints a quantity proportional to the remaining reserve:

emissions=reserve⋅(1−e−Δt⋅max_mint_rate⋅rate_factor)\mathrm{emissions} = \mathrm{reserve} \cdot \left(1 - e^{-\Delta t \cdot \mathrm{max\_mint\_rate} \cdot \mathrm{rate\_factor}}\right)

The rate factor combines the staking ratios of all active gauges:

rate_factor=∑gadjusted_weight(g)∑graw_weight(g)\mathrm{rate\_factor} = \frac{\sum_g \mathrm{adjusted\_weight}(g)}{\sum_g \mathrm{raw\_weight}(g)}

For each gauge gg, the adjusted weight scales the raw governance weight by the square root of that gauge's staking ratio:

adjusted_weight(g)=raw_weight(g)⋅staked(g)lt_total_supply(g)\mathrm{adjusted\_weight}(g) = \mathrm{raw\_weight}(g) \cdot \sqrt{\frac{\mathrm{staked}(g)}{\mathrm{lt\_total\_supply}(g)}}

The table lists the inputs:

SymbolGetter or sourceValue
reserveYB.reserve()300,000,000 YB at deploy
max_mint_rateYB.max_mint_rate()About 7.93 × 10⁻⁹ per second
rate_factorThe rate-factor formula0 to 1
raw_weight(g)Gauge votes of veYB holders—
staked(g) / lt_total_supply(g)Staking ratio: the staked share of the market's yb-LP0 to 1

When every gauge has the same staking ratio, the rate factor is the square root of that ratio. The following chart plots it:

Rate factor against staking ratio: a square-root curve. A 25% staking ratio gives 0.5, and 50% gives about 0.71.Rate factor against staking ratio: a square-root curve. A 25% staking ratio gives 0.5, and 50% gives about 0.71.

The rate factor sets the emission rate as a share of the maximum at the current reserve. It rises fastest at low staking: a staking ratio of 6.25% already gives 0.25, and 25% gives 0.5. At 50%, the rate factor is about 0.71 (√0.5 ≈ 0.707).

Emissions at full and zero staking​

When every gauge is fully staked, the rate factor approaches one. Emissions then run at the maximum decay rate, max_mint_rate. When the gauges have no stakers, the rate factor approaches zero. Emissions then decrease in proportion.

Supply cap and minters​

emit() mints only from reserve, so each emission moves YB from reserve to totalSupply. If no other minter exists, reserve + totalSupply stays at the maximum supply of 1,000,000,000 YB. owner() on the token returns the zero address. Ownership is renounced, so no new minter can be granted. The GaugeController holds the minter role and mints only through emit(), which is bound by the reserve. Verify the full minter set from the token's RoleMinterChanged events.

For the full supply structure and the minter role, read Supply structure in YB token.

Contrast with CRV​

The table compares the YB schedule with Curve's CRV schedule:

CRVYB
SchedulePiecewise: multiplied by 2−1/42^{-1/4} each yearContinuous exponential decay
AdaptationStaticDriven by gauge staking ratios
End stateAsymptotic total supply approximately 3.03 billion CRV1,000,000,000 YB maximum supply, and the emission reserve approaches zero