veFlow & Utilization Gauges
This page explains how XPGN lockers steer emissions and order-flow in Paragon Flow DEX — and how LPs, traders, and lockers all get paid.
What is veFlow?
veFlow is a vote-escrowed NFT you mint by locking XPGN (or staking XPGN → stXPGN, then locking). Lockers receive:
Voting power to direct:
Emissions (XPGN to pools via Gauges), and
Surplus routing weights (which paths solvers prefer when multiple routes tie).
Cashflows:
A share of captured surplus from Proof-of-Best-Execution (default: 10% of surplus goes to lockers), and
Bribes placed to attract your votes.
Why not classic ve(3,3)? We keep the good parts (time-weighted, bribes, gauges) but add execution quality: veFlow voters don’t just point emissions — they also influence where order-flow and surplus go.
Locking parameters (initial)
Lock asset: XPGN (optionally via stXPGN adapter)
Lock duration: 1 week → 104 weeks
Voting power: linear with time
veFlow = XPGN_locked × (lock_weeks / 104)
NFT: transferable after unlock; lock extensions and add-more supported
Vote cadence: weekly epochs (Thu 00:00 UTC, adjustable by governance)
Unclaimed rewards: accrue to the veFlow NFT (claimable by owner)
What are Utilization Gauges?
Utilization Gauges allocate emissions to pools that traders actually use, not just the ones with TVL. Each pool has a Gauge. Every epoch:
veFlow voters set target weights for pools.
We compute a Flow Utilization Score (FUS) for each pool (see below).
Emissions are distributed by votes blended with utilization:
effective_weight_i = vote_weight_i × (1 + β × norm(FUS_i))
emission_i = EPOCH_EMISSIONS × (effective_weight_i / Σ effective_weights)
β (beta) tunes the boost from utilization (default 0.5 on testnet).
norm(FUS) is [0..1] normalization across pools.
Flow Utilization Score (FUS)
A simple, transparent composite from the last 7 days:
Volume share (v): share of routed Flow volume through pool i.
v_i = volume_i / Σ volume_all
Price-impact smoothness (s): lower avg. slippage earns higher score.
s_i = exp(-k × avg_price_impact_i)
(k≈8 as a default)Liquidity stickiness (l): liquidity-minutes favor stable depth.
l_i = ln(1 + (liq_minutes_i / L0))
(L0 set by governance)
We combine and normalize:
raw_FUS_i = v_i × s_i × l_i
FUS_i = raw_FUS_i / max(raw_FUS)
Governance can tune k and L0, or even simplify to FUS = v × s
initially.
Rewards by role
Traders (swappers)
Instant rebate from captured surplus (default split: 60% to trader).
MEV protection (batching + intents) and best-execution guarantees.
Transparent receipts on each swap: “You saved X — Y credited.”
LPs
DEX fees (e.g., 0.25% in v2 pools).
Emissions from Gauges (weighted by votes × utilization).
Flow Rebate: 30% of surplus (default) routed to the pools actually used in winning paths — tracked and claimable via LPRebateVault at the settlement block snapshot.
veFlow lockers
Surplus share: 10% of every captured surplus (default) → LockerVault.
Bribes: projects can bribe veFlow voters for weight.
Future real yield: governance may route a slice of protocol fees here.
(Default surplus split can be changed by governance, e.g., 55/30/10/5 (trader/LP/lockers/treasury).)
Bribes, but flow-first
Two bribe surfaces:
Gauge bribes (classic): pay veFlow voters to weight your pool’s Gauge.
Order-flow bribes (new): pay solvers to prefer your route when price is equal.
Solvers must prove UX-safe routing (within price-impact/latency bands).
Abuse is capped by PoBE checks and oracle guardrails.
Both bribe types are visible in the UI. Bribes are claimable per epoch.
Anti-gaming & risk rules
Wash-trade filters: volume from correlated wallets or zero-P&L loops is discounted from FUS.
Price-impact caps: swaps exceeding safe bands don’t earn surplus credit.
Oracle bands: a settlement price must be within Δ% of oracle TWAP; otherwise surplus accounting is clipped.
Min liquidity floor: pools below a depth threshold get reduced FUS.
Route sanity: only whitelisted executors/routers (governance-curated) can settle intents in early phases.
Contract map (minimal)
veFlowNFT — lock XPGN → veFlow, vote/extend/merge/split.
FlowGauges — store votes, compute effective weights, stream emissions.
BribeFlowMarket — claimable bribes for veFlow voters (and optional solver bribes).
FlowSettlement — verifies intents, enforces PoBE, splits surplus (Trader/LPs/Lockers).
LPRebateVault — tracks per-hop accruals and “snapshot-at-block” LP claims.
LockerVault — accrues surplus to veFlow holders.
PointsAdapter (testnet) — maps User Points ↔ temp voting boost (optional).
Testnet plan (3–4 weeks)
Week 1 — Skeleton
veFlowNFT (locks), FlowGauges (votes), emissions faucet.
FUS simplified to volume share only; β = 0.3.
Surplus split visible in UI with mock surplus for demo (or routed from a canary solver on small batches).
Week 2 — Real flow
Turn on intents + micro-batches (1 block).
LPRebateVault and LockerVault live; claim pages.
Add price-impact smoothness (s) into FUS; β = 0.5.
Week 3 — Bribes & dashboards
BribeFlowMarket live; sponsor a few pools with native bribes.
Leaderboards: Top Savings, Flow-Earning LPs, Most Influential veFlow voters.
Open external solver allowlist (Thena/Pancake paths via our router).
Week 4 — Hardening
Add wash-trade filters, oracle bands, and caps.
Parameter votes on: β, split %, epoch length, allowlist.
Examples
Example 1 — Emissions to a pool
Total weekly emissions: 1,000,000 XPGN
Votes: Pool A = 20%
FUS_A (norm) = 0.8, β = 0.5 → factor = 1 + 0.5×0.8 = 1.4
After normalization across all pools, Pool A receives ~1.4× its raw vote share.
Example 2 — Surplus split on a swap
Captured surplus = $10.00
$6.00 → Trader (instant rebate)
$3.00 → LPRebateVault for the used hops (claimable by LPs)
$1.00 → LockerVault (pro-rata to veFlow holders)
How it shows up in the UI
Swap: “You saved $0.34 • $0.20 rebated now • $0.11 to LPs • $0.03 to veFlow lockers”
Pool page: “This pool earned $1,240 Flow Rebates this week • 22% of epoch emissions”
veFlow: “Your voting power: 12,430 • Bribes this epoch: $845 • Surplus claimable: $56.22”
Governance knobs (you can change later)
β (utilization boost): 0.0–1.0 (default 0.5)
Surplus split: trader/LP/lockers/treasury (default 60/30/10/0)
Epoch length: 7 days (testnet), 7–14 days (mainnet)
Oracle bands: ±0.5–1.0% TWAP, 30–60 min window
Min depth to earn FUS: governance-set per fee tier
Why this matters
LPs get paid for use, not idle TVL.
Lockers earn real flow yield and shape both emissions and execution.
Traders see savings and get cash back.
Solvers compete on best execution, not extractive MEV.
This is the execution-aligned evolution of ve(3,3): veFlow + Utilization Gauges turn Paragon into a marketplace where the best pricing wins — and everyone who makes that happen shares the surplus.
Last updated