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 mainnet E and d 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)

Parameter
Testnet Default
Mainnet Suggested
Who changes

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