Gauge weighted system for controlling FXS emissions
A "gauge" is a farming smart contract that takes deposits in one asset (typically an LP token, a vault token, NFT position etc) and rewards the depositor yield in FXS (and potentially other) tokens. Gauge contracts can take many forms of deposits such as FRAX lending deposits (aFRAX in Aave, cFRAX in Compound, fFRAX in Fraxlend), LP tokens (Curve LP tokens or Fraxswap LP tokens), or even NFTs (such as Uniswap v3 NFT positions). Gauges are used to incentivize particular "strategies" and behaviors that are advantageous to the protocol such as increasing FRAX lending, deepening liquidity of certain pairs, or growing a partnership/integration between another project. The full list of current gauges can be found here: https://app.frax.finance/gauge
The FXS allocated to each gauge strategy is referred to to as its "gauge weight." They can distribute their voting power across multiple gauges or a single gauge. This allows veFXS holders who are the most long term users of the protocol to have control over the future FXS emission rate. Each veFXS is equal to 1 vote.
Additionally, the gauge system lowers the influence of FRAX pairs where the majority of rewards are sold off since those LPs will not have veFXS to continue voting for their pair. This system strongly favors LP providers who continually stake their rewards for veFXS to increase their pool's gauge weight. Essentially, FRAX gauges align incentives of veFXS holders so that the most long term oriented FXS holders control where FXS emissions go. Gauge weights are updated once every week every Wednesday at 5pm PST. This means that the FXS emission rate for each pair is constant for 1 week then updates to the new rate each Wednesday. Any user can change their weight allocation every 10 days.
Since FXS gauge emissions are fixed and halve every year, governance can decide whether to allocate part of protocol cash flows or newly minted FRAX to gauge rewards after a few years. Thus, veFXS stakers can feel confident staking the maximum duration of 4 years knowing that the gauge program is not temporary and won't be deprecated. Gauge strategies are currently a vital part of incentivizing the right behavior for the growth of the Frax ecosystem.
The gauge voting list on app.frax.finance/gauge used for allocating all FXS emissions. The aggregate weights of all votes decide which gauge strategy contract FXS tokens are sent to.
Current Types of Gauges
LP Gauge: an LP gauge is the most common type of gauge contract taking an ERC20 LP token as a deposit. Most gauges incentivize LP positions from Fraxswap, Curve, Uniswap v2, etc. Typically, these gauges offer a 2x veFXS boost of 4 veFXS per 1 FRAX in the LP position and an additional 1 year 2x timelock boost (unless otherwise specified).
Lending Gauge: a lending gauge is typically deployed to incentivize FRAX lending activity in a money market such as Aave, Fraxlend, Compound etc. The deposit token is aFRAX, fFRAX, cFRAX, etc. Lending gauges typically do not offer timelock boosts but offer up to 2x veFXS boost for 1 FRAX lent out per 4 veFXS.
Uniswap V3 Gauge: Uniswap v3 gauges take an NFT LP position as a deposit. These gauges are pre-configured at launch to accept NFT LPs at a specific tick range to incentivize only the exact concentrated liquidity position that governance approved for the pair. These gauges offer a 2x veFXS boost of 4 veFXS per 1 FRAX in the LP position and an additional timelock boost of 2x-3x for 1-3 year locks (specified for each gauge on its corresponding staking page).
Vault Gauge: a vault gauge takes a vault strategy token as a deposit such as a Stake DAO or Yearn Finance vault token. Vault gauges typically offer a 2x veFXS boost of 4 veFXS per 1 FRAX in the vault position and a timelock boost of 2-3x for 1-3 year (specified for each gauge).
Pie chart displaying the total weights for a particular weekly gauge period. Periods change on Wednesdays at 11:59:59 UTC. Votes can be changed by veFXS stakers once every 10 days.
veFXS Boosts & Timelock Boosts
Users who stake tokens in a gauge contract earn boosts to their APR based on the amount of veFXS they have. Additionally, users that lock their deposited tokens within the gauge contract for a specific period of time will earn a further additive boost thus enabling stacking of both boosts for maximal APR. Since gauge weights change weekly, locked LPs in gauges do not get their deposits unlocked if the gauge weight changes. See the veFXS spec page for an explanation of how boosts are calculated. Each gauge strategy can have different boost terms depending on the end behavior it is incentivizing. For example, a lending gauge might have a very low timelock boost since lending FRAX does not provide peg stability and thus not need extra rewards. However, a Curve, Uniswap, or Fraxswap liquidity gauge might provide a high timelock boost because locking liquidity helps FRAX peg strength during volatility.
Gauge Agnostic Pairs
FRAX gauges allow veFXS stakers to directly control the FXS emission rate to any pool that integrates FRAX. There is no restriction on which protocols or pairs can have a gauge weight other than they use FRAX stablecoins and pass the gauge governance vote. Any FRAX pool (including cross-chain pools) can be added as a gauge in the future. The veFXS gauge system is completely agnostic to the deposit token within a gauge as long as the FRAX stablecoin is being used within the strategy. Essentially, veFXS gauges are the money layer gauge weights of DeFi while other gauges (such as Curve gauge weights) are the DEX layer weights. Since veFXS stakers can control emissions into any protocol that integrates FRAX, many protocols and communities might compete for controlling the future cash flow of an algorithmic stablecoin protocol.
It's important to note for any smart contract (non-EOA wallet) to stake veFXS, they must be whitelisted by a governance vote. For a full list of benefits of holding veFXS such as AMO profits and farming boosts, see the veFXS full specs.