TopazTOPAZDocs

Liquidity

Staking in Gauges

A gauge is the smart contract that distributes TOPAZ emissions to LPs in a single pool. Every active pool has at most one gauge. This page explains how to deposit, what you give up by staking, and how to claim.

The gauge in 30 seconds

When veTOPAZ voters vote for a pool, the gauge associated with that pool receives a proportional share of weekly TOPAZ emissions. The gauge then streams those emissions linearly over the epoch to LPs staked in it, in proportion to each LP's share of staked liquidity.

The swap fees that a staked LP would have earned are relinquished to the gauge's FeesVotingReward contract, which pays them out to voters. So staking trades fees for emissions; unstaked positions retain fees but earn no emissions and pay an extra unstaked-fee surcharge (Slipstream only).

Staking a v2 LP token

  1. 1Add liquidity to the v2 pool and receive the LP token in your wallet.
  2. 2Open the pool's position card at app.topazdex.com/liquidity and click stake.
  3. 3Approve the gauge to spend the LP token (one transaction, one-time per gauge).
  4. 4Stake the LP token. You start earning TOPAZ emissions immediately at the gauge's current reward rate.
Continuous accrual
Gauges accrue rewards continuously, not at epoch boundaries. The per-token reward rate is set once per epoch when the Voter distributes that epoch's emissions to the gauge, then streams linearly across the epoch's 604,800 seconds. You can claim any time without affecting future accrual.

Staking a Slipstream position NFT

  1. 1Mint the position NFT in the Slipstream pool.
  2. 2Collect any pending swap fees first if you want to keep them — staked positions don't accumulate swap fees.
  3. 3Approve the gauge for your specific NFT (positionManager.approve(gauge, tokenId)).
  4. 4Deposit the NFT into the gauge. The gauge holds custody; you retain economic ownership and can withdraw at any time.
  5. 5You earn TOPAZ emissions proportional to your in-range liquidity, not your total deposited liquidity. Out-of-range positions earn nothing.
In-range matters
A staked Slipstream position only earns emissions while its range covers the current tick. If price exits your range, your position contributes zero to the gauge's active liquidity until price returns. Plan your range with this in mind — and consider unstaking to collect fees as one-token exposure if you're going to be out of range for a while.

Claiming rewards

Two ways to claim TOPAZ emissions:

  • Per-gauge: getReward(account) on a single gauge claims your accumulated emissions for that pool.
  • Bulk: Voter.claimRewards([gauge1, gauge2, ...]) claims TOPAZ from many gauges in one transaction. The app uses this to give you a one-click "claim all" flow.

Claimed TOPAZ lands in your wallet as liquid TOPAZ. From there you can sell, lock for veTOPAZ, or re-LP. Compounding into veTOPAZ is the most aligned move — it grows your voting power and future fees + bribes.

Unstaking and withdrawing

You can withdraw any time. There is no cooldown, no lockup, no slashing.

  • v2 LP tokens: call withdraw(amount) on the gauge. Reward emissions stop accruing for the unstaked portion. Claim your pending TOPAZ in the same call or separately via getReward.
  • Slipstream NFTs: call withdraw(tokenId) on the gauge. The NFT returns to your wallet; pending rewards are sent automatically. Swap fees accumulated while the NFT was unstaked (i.e. zero) — but the position continues to live; you can re-stake, collect fees if any accrued before staking, or close it.

Killed gauges

If a gauge is killed by the Emergency Council (e.g. due to a discovered exploit, bad pool, or governance decision):

  • New deposits revert. You cannot stake into a killed gauge.
  • Existing stakers can still withdraw. Your LP token or NFT is not stuck.
  • TOPAZ emissions stop. Already-accumulated rewards are still claimable.
  • Killed gauges can be revived by the Emergency Council if the underlying issue is resolved.

See Security & Audits for the admin-control surface.

Continue reading