Emissions & Redirects
This page explains how new $XPGN enters the system (emissions) and where it goes (redirects). It also clarifies how non-emission revenues (swap fees, PoBE surplus) are routed.
1) Epochs, Supply & Decay
Epoch length: 7 days (weekly).
Base emissions (per epoch):
E
$XPGN (governance-set).Optional decay:
E_(n+1) = max(E_n × (1 − d), E_floor)
Default d = 0% on testnet, 1–2% proposed on mainnet.
E_floor prevents emissions from tapering to zero without a vote.
Testnet (3–4 weeks): use Points or test $XPGN with
d = 0%
. Final mainnetE
andd
are ratified before TGE.
2) Emission Distribution (high level)
Default mainnet split of each epoch’s emissions:
90% → Utilization Gauges (veFlow-directed to pools)
10% → Builder/Treasury stream
8% to Treasury Vault (ops, audits, grants; time-streamed)
2% to Core contributors (time-vested, transparent)
This preserves “10% dev fund” but makes it time-vested and on-chain visible.
3) Utilization Gauges (where the 90% goes)
veFlow voters assign weights to pools. We boost voted weight by real usage via the Flow Utilization Score (FUS).
effective_weight_i = vote_weight_i × (1 + β × norm(FUS_i))
emission_i = E_gauges × (effective_weight_i / Σ effective_weight)
β (utilization boost coefficient): default 0.5 (testnet adjustable).
FUS blends: share of routed volume, price-impact smoothness, liquidity stickiness.
norm(·) scales to [0,1] across pools per epoch.
Guardrails
Per-pool cap: max 15% of E_gauges per epoch (default).
Dust floor: pools below 0.25% receive 0 (saves gas/fragmentation).
Weight velocity limit: change in effective weight max ±30%/epoch (anti-swing).
4) Redirects (what governance can steer)
“Redirects” are policy switches that change where emissions or revenues flow without changing total supply.
A) Gauge Redirects (veFlow)
Voters redirect the 90% emission stream to specific pools by voting.
Protocol keeps caps, floors, and velocity limits (above).
B) Campaign Redirects (time-boxed)
Governance may earmark X% of E for N epochs to a goal (e.g., P10 bootstrapping, new L1 pairs).
Implemented as an overlay weight that decays to 0 by epoch N.
C) veBoost Redirect (to LPs who lock)
Optional veBoost: LPs holding veFlow get up to +40% reward share in the pool they LP.
Does not increase E; it redirects within the pool from non-boosted to boosted LPs.
Example:
user_share’ = user_share × (1 + min(0.4, f(veFlow_balance)))
.
D) Treasury Redirect (non-emission fees)
Swap fee 0.30%:
0.25% → LPs (immediate)
0.05% → Protocol Vault
Governance sets a split, e.g. Buyback+POL / Shield Reserve / Ops (e.g., 60/30/10 default; changeable).
E) PoBE Surplus Redirect (non-emission revenue)
Captured execution surplus from intents/batching is revenue, not emissions. Default split:
60% → Trader rebate (instant)
30% → LP Rebate Vault (to pools used in the winning route; claimable by LPs)
10% → Locker Vault (pro-rata to veFlow lockers)
Optional protocol skim (e.g., 5% before the split) can be enabled by governance for Treasury/Shield. On testnet keep skim at 0%.
F) Emergency Redirects
Oracle/Anomaly breaker: if price feeds deviate beyond band, auto-zero emissions to affected pool for the epoch.
Compliance switch (as policy requires): pause/redirect to Treasury until vote.
5) Worked Examples
Example 1 — Weekly emissions
E = 1,000,000 XPGN
,d = 1.5%
,β = 0.5
E_gauges = 900,000, E_builder = 100,000
Treasury Vault: 80,000
Core vesting: 20,000
A pool with 10% votes and FUS at 0.8:
effective_weight = 0.10 × (1 + 0.5 × 0.8) = 0.10 × 1.40 = 0.14
If Σ effective_weight across pools = 1.00,
emission_i = 900,000 × 0.14 = 126,000 XPGN
Example 2 — Campaign redirect
Governance allocates 5% of E to P10 pools for 3 epochs.
The 5% comes from E_gauges and is split across P10 pools by their votes+FUS.
After epoch 3, overlay weight auto-expires.
Example 3 — PoBE surplus
A batch saves $10,000 vs minOut across routes.
With 60/30/10 split and 0% protocol skim:
$6,000 → Trader (cashback)
$3,000 → LP Rebate Vault (pro-rata to used pools)
$1,000 → Locker Vault (veFlow holders)
6) Parameter Table (defaults & who can change)
Epoch length
7 days
7 days
Governance (hard to change)
Base emissions E
100k Points/wk
TGE vote
Governance
Decay d
0%
1–2%
Governance
Gauges share
90%
90%
Governance
Builder/Treasury share
10%
10% (8/2 split)
Governance
β (FUS boost)
0.4–0.6
0.5
Governance
Pool cap
20% (testnet)
15%
Governance
Dust floor
0.25%
0.25%
Governance
Weight velocity limit
±30%
±30%
Governance
Swap fee split
0.25% LP / 0.05% Treasury
same
Governance
Treasury sub-split
60/30/10
60/30/10
Governance
PoBE surplus split
60/30/10
60/30/10
Governance
Protocol skim on PoBE
0%
0–5%
Governance
7) What is not an emission?
Swap fees (0.25% to LPs) — trading revenue.
0.05% Treasury accrual — protocol revenue.
PoBE surplus — captured execution edge (rebates + vaults).
Bribes — third-party incentives that influence votes, not supply.
8) Testnet Plan (3–4 weeks)
Week 1–2: Emission points live; gauges + FUS (volume-only); caps/floors enforced.
Week 3: PoBE surplus accounting & UI; LP/Locker vault claim pages; no protocol skim.
Week 4: Campaign redirect demo (P10), parameter vote (β, caps, decay), docs freeze.
9) Contracts & Admin
FlowGauges.sol: emission math (FUS boost, caps, floors, velocity).
veFlow.sol: locks & voting; boost oracle for LPs.
RebateVaults: LP & Locker vault accounting for PoBE surplus.
TreasuryVault: receives 0.05% AMM fee and optional PoBE skim; exposes policy splits.
Governor / Timelock / Multisig: parameter changes with delay & on-chain proposals.
TL;DR
Emissions go mostly to pools that prove real usage.
Governance can redirect emissions (gauges/campaigns) and revenue (Treasury, PoBE splits).
Testnet uses Points, then we lock mainnet parameters by vote before launch.
Last updated