FEE emissions schedule
The FEE token has a fixed total supply of 100,000,000 FEE, minted once at deployment (FEEToken.sol) and split across three tranches, each released on its own schedule. This page shows the full allocation, then walks each tranche's release curve — all drawn with the same chart so they line up on one 48-month timeline.
Allocation
Total FEE supply: 100,000,000 FEE, minted at deployment into three tranches whose amounts are asserted on-chain to sum to the whole supply:
| Tranche | FEE | Share | Release |
|---|---|---|---|
| Protocol emissions | 63,000,000 | 63% | SP issuance (31.5M) + LP issuance (31.5M), front-loaded 48-month curve |
| FLX stakers | 2,000,000 | 2% | Linear stream over 365 days (FLXStaking) |
| Team & investors | 35,000,000 | 35% | 1-year lock, then linear over 2.5 years (Sablier) |
| Total | 100,000,000 | 100% | — |
Each tranche's release schedule is charted below on a shared 48-month timeline.
Protocol emissions — 63% (63M)
The protocol tranche is 63,000,000 FEE, emitted on an immutable 48-month (4-year) schedule defined in FEEEmissionCurve.sol, split equally between the SP and LP issuance programs:
- 31,500,000 FEE per SP & LP, emitted independently on the same curve.
- SP issuance funds Stability Pool incentives (via
SpIssuance); LP issuance funds LP-staking incentives (viaLpIssuance).
The SP and LP programs are independent — Stability Pool depositors and LP stakers each draw from their own 31.5M-FEE budget on the same time profile. The schedule is front-loaded but not a decay: emissions get stronger every month for the entire first year, peaking at month 12, then taper for about three more years until each program's cap is reached.
Shape
The schedule is encoded as 48 month-end cumulative checkpoints (months 0–47). Within each month emissions are linear; across months they form a smooth curve.
Key milestones, per SP & LP:
| Month | Cumulative FEE | Monthly FEE | % of cap |
|---|---|---|---|
| 1 | 681,103 | 681,103 | 2.2% |
| 6 | 4,638,079 | 871,153 | 14.7% |
| 12 | 10,869,621 | 1,170,447 (peak) | 34.5% |
| 18 | 17,255,215 | 982,399 | 54.8% |
| 24 | 22,461,929 | 785,919 | 71.3% |
| 36 | 29,338,722 | 392,959 | 93.1% |
| 47 | 31,500,000 | 32,746 | 100% |
The final FEE is emitted during month 47; from month 48 onward (= 4 × SECONDS_PER_YEAR from deployment, the HOT_END constant), getCumulativeIssued returns the cap. No further FEE is emitted from this contract.
Monthly emissions (per SP & LP)
Emissions strengthen month over month for the entire first year before the taper begins. Drag across the charts to inspect any month; toggle the overlay to compare against a 1-year half-life decay at the same cap.
Why this shape
Three reasons, in priority order:
- Front-loaded to bootstrap usage. Emissions grow every month for the first year, peaking at month 12 (not month 1) — initial depositors and LP stakers get a chance to enter and accrue position before peak emissions hit. A pure-decay curve (highest at t=0) would over-reward whoever happens to be in the contract at the moment of deployment.
- No long tail. The curve reaches the cap within its 48-month window, not asymptotically. Once the cap is hit, the SP and LP issuance contracts are functionally complete — there's no slow drip of fresh FEE indefinitely diluting holders.
- Smooth and predictable. The schedule is purely a function of
block.timestamp − deploymentTime. No governance vote, no rate changes, no admin pause. Anyone can compute their share of upcoming emissions exactly.
Comparison with a 1-year half-life decay
A common alternative is a 1-year half-life exponential decay (the standard (1 − 0.5^t) curve). That's extremely front-loaded: ~50% of the supply is emitted in year 1, ~75% by year 2, and the long tail asymptotically approaches the cap forever.
RAI Dollar's curve is also front-loaded, but in a different shape:
- It ramps up to peak emissions at month 12 instead of starting at peak.
- It terminates cleanly within its 48-month window instead of decaying forever.
- The total cap is reached in finite time, not asymptotically.
In practice, both produce roughly comparable cumulative-emitted-by-year curves for the first few years, but RAI Dollar's avoids the "first-block farmers get everything" pattern that exponential decay rewards. Toggle the comparison overlay in the charts above to see both curves at the same cap.
Reading it on-chain
The library exposes two view functions used by SpIssuance and LpIssuance:
FEEEmissionCurve.getCumulativeIssued(uint256 elapsed) returns (uint256)
FEEEmissionCurve.getCumulativeFraction(uint256 elapsed) returns (uint256)
Both take seconds elapsed since deployment and return the cumulative-emitted FEE (and the fraction of cap, respectively). The integral over any window is simply the difference of two getCumulativeIssued calls.
FLX stakers — 2% (2M)
2,000,000 FEE (2% of supply) seeds the FLX staking contract and streams linearly over 365 days to whoever is staking FLX at each moment — a flat rate, no cliff, no front-loading. It is a one-time, time-boxed distribution; once the pot is exhausted no further FEE accrues from that contract. Full mechanics on the FLX staking page.
Team & investors — 35% (35M)
35,000,000 FEE (35%) goes to the team and investors through a Sablier Lockup Linear stream created by FEESablierInitializer.sol: fully locked for the first year, then vested linearly over the following 2.5 years, reaching full vesting at month 42. There is no cliff-release — the one-year lock is simply a delayed stream start (nothing unlocks until month 12), after which the position climbs steadily. The stream is non-cancelable and non-transferable.