Lux Proposals
← All proposals
LP-0059Finalgaugevotingfeesdistributionincentives

LP-059: Gauge Controller

Abstract

The Gauge Controller directs protocol incentive emissions across Lux DeFi pools. DLUX holders vote weekly to allocate emission weight to gauges (pools, markets, vaults). Pools with higher gauge weight receive more LUX emissions, attracting more liquidity. This creates a market for liquidity incentives where protocols can bribe DLUX holders to direct emissions to their pools.

Specification

Gauge Registration

Each incentivized pool/market has a gauge:


Gauge {
    gaugeID     uint256
    pool        address     // AMM pool, lending market, or vault
    gaugeType   uint8       // 0=AMM, 1=lending, 2=staking, 3=bridge
    weight      uint256     // current vote weight (bps of total)
    killed      bool        // governance can kill gauges
}

Voting

DLUX holders allocate their voting power across gauges:


function voteForGaugeWeights(uint256 gaugeID, uint256 weight) external;

Emission Allocation

Total weekly LUX emission is split across gauges proportionally:


gaugeEmission_i = totalWeeklyEmission * gaugeWeight_i / totalWeight

Emissions are distributed to LP token stakers in each gauge, proportional to their share of the gauge's staked LP tokens.

Gauge Types

| Type | Emission Share | Description |
|---|---|---|
| AMM | 50% of total | AMM V2, V3, StableSwap pools |
| Lending | 20% of total | Lending markets (supply side) |
| Staking | 20% of total | Liquid staking and restaking |
| Bridge | 10% of total | Bridge liquidity |

Within each type, DLUX votes determine the allocation among individual gauges.

Bribes

Third-party protocols can incentivize DLUX holders to vote for their gauge:


function depositBribe(uint256 gaugeID, address token, uint256 amount) external;

Bribes are distributed pro-rata to voters who allocated weight to that gauge in the current epoch. This creates a secondary market for liquidity incentives.

Gauge Lifecycle

1. Proposal: new gauge created via governance proposal (LP-058)

2. Active: gauge accepts votes and receives emissions

3. Killed: governance can kill a gauge (emissions stop, votes are released)

Killed gauges cannot be revived. A new gauge must be created for the same pool.

Anti-Gaming

Security Considerations

1. Bribe market manipulation: large DLUX holders can dominate gauge votes. The 30% cap per voter and bribe market provide counterbalancing incentives.

2. Dead gauges: pools that lose all liquidity but retain gauge weight waste emissions. Governance can kill such gauges.

3. Vote buying: bribes are an explicit feature, not a bug. Transparent on-chain bribes are preferred over opaque off-chain deals.

Reference

| Resource | Location |
|---|---|
| Gauge controller | github.com/luxfi/standard/contracts/governance/ |
| GaugeController | GaugeController.sol |
| Bribe vault | BribeVault.sol |
| DLUX voting | LP-057 |

Copyright

Copyright (C) 2024-2026, Lux Partners Limited. All rights reserved.

Licensed under the MIT License.