Voting & Incentives
Incentives (Bribes)
Topaz uses 'incentive' and 'bribe' interchangeably. They're the open, public market that lets protocols pay veTOPAZ voters for liquidity emissions — and the central reason ve(3,3) is a more efficient distribution mechanism than direct LP farming.
Why incentives exist
Pre-ve(3,3), a project that wanted deep liquidity for its token had two choices: run its own LP farming program (expensive, no coordination, mercenary capital) or beg a major DEX to list it (slow, opaque, political). Both leak value.
ve(3,3) replaces both with an open auction. veTOPAZ voters choose where TOPAZ emissions flow each epoch. Projects compete for that flow by posting incentives on the gauges they care about. Voters take the incentives that maximize their return. Both sides discover the right price for liquidity transparently.
The mechanics
Every gauge has an associated BribeVotingReward contract. Anyone can call notifyRewardAmount(token, amount) on it to deposit incentives. Rules:
- ✓Tokens must be on the Voter's whitelist. This prevents spam / phishing tokens. Whitelisting is governance-controlled.
- ✓Incentives deposited during epoch n are claimable by voters who voted for that gauge in epoch n, becoming available at the epoch n+1 boundary (Thursday 00:00 UTC).
- ✓Pro-rata distribution: each voter's claim is (their gauge vote weight) / (total gauge vote weight) × deposited incentive.
- ✓Multiple tokens per gauge: a gauge can have several incentives simultaneously, each tracked separately.
- ✓Unclaimed incentives remain claimable up to 50 epochs back. After that, they roll forward to future voters.
Depositing an incentive (as a project)
- 1Identify the target pool and confirm it has an active gauge.
- 2Confirm the reward token is on the Voter whitelist. If not, request whitelisting (see Integration Guide).
- 3Approve the BribeVotingReward contract for the amount, then call
notifyRewardAmount(token, amount). You can do this directly via the contract or through the incentives UI at app.topazdex.com/incentives. - 4Timing: incentives deposited mid-epoch attract votes for the same epoch. To maximize visibility, deposit early in the epoch (Thursday — Saturday) so voters see them in time.
- 5Watch how votes shift in your gauge over the epoch. Adjust subsequent incentive sizes based on observed vote ROI.
Claiming incentives (as a voter)
After an epoch flips, your share of incentives from each gauge you voted for becomes claimable. The app aggregates everything into a single "claim all" button. Programmatically:
- ✓
Voter.claimBribes(bribes[], tokens[][], tokenId)— pass arrays of bribe contracts and the tokens you want to claim from each. Receives the rewards to the NFT owner. - ✓
Voter.claimFees(fees[], tokens[][], tokenId)— same shape, but for swap-fee rewards from the FeesVotingReward contracts. - ✓Claims do not require the NFT to be active in the current epoch — claim anytime up to 50 epochs after the epoch in which the reward accrued.
Strategy notes
For both sides of the market, the same rule applies: incentive ROI is the only metric that matters in steady state. Express it as bribe-per-vote:
- ✓As a voter — sort gauges by bribe-per-vote (the app does this for you). Spread votes across the top gauges to maximize income. Re-evaluate each epoch.
- ✓As a project— target bribe-per-vote slightly higher than the current epoch floor (so you actually attract votes) but not so high that you're overpaying. Tail-end the deposit so voters see the offer before they finalize allocations.
- ✓Watch the emission flow. A vote is only worth what its share of next epoch's emissions ends up being worth. As TOPAZ price moves, vote value moves with it — incentive depositors price relative to expected $-denominated emissions, not raw TOPAZ.
Whitelisting reward tokens
Only governance-whitelisted tokens can be used as incentives. This prevents griefing with worthless or malicious tokens. Projects launching with Topaz typically pre-coordinate whitelisting of their token with governance ahead of mainnet. For new tokens that want incentive eligibility, see the Integration Guide for the request flow.
Continue reading
Gauge Voting →
Cast votes to direct emissions and claim fees + incentives.
veTOPAZ Locks →
The locking mechanic that gates participation in the incentive market.
Integration Guide →
Whitelist a token, list a pool, and post incentives as a project team.
Contracts →
Voter, VotingRewardsFactory, and the related bribe + fee contracts.
