TopazTOPAZDocs

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 clean part of the design
The project pays once for votes; the protocol's emission schedule does the actual LP-paying. The project never has to run a farming program directly. The voter sells the votes only when the price is right.

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)

  1. 1Identify the target pool and confirm it has an active gauge.
  2. 2Confirm the reward token is on the Voter whitelist. If not, request whitelisting (see Integration Guide).
  3. 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.
  4. 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.
  5. 5Watch how votes shift in your gauge over the epoch. Adjust subsequent incentive sizes based on observed vote ROI.
No refunds
Incentive deposits are irreversible. If no one votes for the gauge in that epoch (highly unlikely on an active pool), the rewards remain attributable to that gauge and pay future voters in subsequent epochs. Plan deposit sizes accordingly.

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:

bribePerVote = (deposited incentive in $) / (votes attracted)
  • 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