GaugeController¶
ELI5: The scoreboard for weekly votes — tracks which gauges get weight each epoch and freezes snapshots so people can't cheat with flash loans.
What you can do¶
| Function | Who |
|---|---|
vote(gauge, weight) |
veTARE holder |
add_gauge / admin |
Owner |
checkpoint |
Anyone |
Epoch boundary: Thursday 00:00 UTC — weights apply to Keep routing.
Flywheel fit¶
Maps voter preference → relative strategy weights read by GaugeWeightRouter.
Contract walkthrough¶
GaugeController.vy:
- Up to 16 gauge types (
MAX_GAUGE_TYPES) - Slope-weighted vote decay (veCRV-faithful)
- Per-type weight scaling:
gauge_weight = MULTIPLIER * type_weight * bias / total_weight - Kill switch for malicious gauges
_get_total()sole bookkeeper for weight sums
Vote cooldown: 10 days per (user, gauge) pair.
flowchart TD
Vote[user vote] --> GC[GaugeController]
GC --> Epoch[Weekly epoch snapshot]
Epoch --> GWR[GaugeWeightRouter]
What can go wrong¶
Risks
- Low participation → weights reflect few voters.
- Gauge kill switch is owner power — operational trust.
- Votes change allocations only within strategy
max_debt.
Source: khomdev-veforge/src/GaugeController.vy