Velodromefinance

Velodromefinance voting weights and weekly emission allocation

Velodromefinance voting uses veVELO NFT weights to determine each pool gauge's share of weekly VELO emissions. Within V2 on Optimism, an owner or approved operator selects pools and assigns relative weights to them. The Voter contract converts those choices into recorded allocations and records the NFT's voting balances in the associated reward contracts. Pool voters earn their shares of deposited incentives and qualifying trading fees; liquidity providers earn emissions through gauge stakes. Lock duration controls available voting power, while epoch windows constrain vote submission. A vote record establishes the allocation; funded rewards and later distribution establish what the selected pool and its voters receive.

Last updated ยท

Key takeaway: Casting a pool vote prevents that veNFT from entering a managed strategy during the same epoch.

Allocating a veNFT vote across pool gauges

A veNFT holder directs emissions by assigning its available voting power across selected pools with live gauges. The vote identifies the NFT, pool addresses, and relative weights. The contract scales each input weight against the sum of the submitted weights, then applies that proportion to the NFT's available power. Increasing every input weight by the same factor therefore leaves the intended proportions unchanged. Each selected pool must receive a positive calculated weight; a zero input or an allocation rounded to zero makes the vote revert.

Preparation starts with the specific NFT's ownership, lock state, and voting eligibility. An approved operator can submit a vote on its owner's behalf. That permission authorizes the operation; it does not increase the underlying voting power. Pool selection also determines which fee and incentive reward contracts receive the NFT's voting balance. The allocation joins the votes that other NFTs have assigned to those pools.

Lock duration sets the available voting power

VotingEscrow represents locked VELO through ERC-721 NFTs, and the lock's amount and remaining duration determine its voting weight. Holding transferable VELO in a wallet does not create that escrowed voting position. A normal timed lock and a permanent lock expose different commitments.

Timed locks

A V2 timed lock can last up to four years, with its voting power declining linearly toward expiry. Adding VELO to an eligible position increases its locked amount. Extending an unexpired normal lock increases its remaining duration and associated voting power. The contract rounds lock endpoints down to weekly boundaries, so the recorded endpoint governs the actual commitment.

Permanent locks

Keeping full voting weight

A permanent normal lock keeps voting power equal to its locked VELO amount without time decay. The position has no running expiry while it remains permanent. This choice changes the token commitment, while the ordinary pool-voting windows and authorization requirements continue to apply.

Returning to a timed lock

Removing permanent status starts a maximum-duration timed lock, rounded to a weekly boundary. It does not release the VELO immediately. The operation also requires the NFT's voting flag to be clear, so an existing pool allocation can prevent the change.

The Voter records allocations and voting balances

An accepted vote updates the NFT's pool list, per-pool allocations, used voting weight, and last-vote timestamp. It also updates aggregate pool weights and the voting balances in the corresponding fee and incentive reward contracts. These records distinguish authorization from an allocation that the contract actually accepted. A wallet signature alone establishes neither. The NFT identifier connects the operation to a specific lock, while the selected pools identify the destinations of its weight. Checking the resulting allocation against those inputs can reveal a wrong NFT or pool selection.

When can a veNFT submit a pool vote?

An eligible normal V2 veNFT can submit one new pool vote per epoch after the opening distribution window closes, subject to the final-hour restriction. A managed deposit consumes that same epoch opportunity. The contract measures eligibility using the NFT's recorded timestamp and the current block timestamp, rather than the wallet's local clock.

When can a veNFT submit a pool vote?
V2 time parameter Duration Next eligible pool vote
Epoch length 7 days A normal NFT that has voted must reach a later epoch and pass its opening window.
Opening distribution window First 1 hour of each epoch Voting opens after this window ends.
Restricted closing window Final 1 hour of each epoch An ordinary NFT waits for the next opening; whitelisted NFTs have a voting exception.
Illustration: When can a veNFT submit a pool vote? (Velodromefinance voting)

When can a veNFT submit a pool vote?

  • V2 time parameter: Epoch length Duration: 7 days Next eligible pool vote: A normal NFT that has voted must reach a later epoch and pass its opening window.
  • V2 time parameter: Opening distribution window Duration: First 1 hour of each epoch Next eligible pool vote: Voting opens after this window ends.
  • V2 time parameter: Restricted closing window Duration: Final 1 hour of each epoch Next eligible pool vote: An ordinary NFT waits for the next opening; whitelisted NFTs have a voting exception.

Open full-size image

Whitelisting permits final-hour pool voting only for the approved NFT. It does not bypass ownership checks or grant a second vote in that epoch. Submission timing also differs from execution timing: the contract checks the block that executes the call. A pending transaction can encounter a different voting window from the one that the wallet displayed at signing.

From pool weight to gauge emissions

The Minter supplies the VELO budget to the Voter during a weekly emission update. A live V2 gauge accrues an emission allocation in proportion to its pool's recorded voting weight. The relevant denominator is the Voter's total recorded allocation weight. A voter's personal split therefore contributes to a pool's allocation alongside every other recorded vote. Pool selection directs the distribution of the available budget; the minting mechanism determines that budget.

The Voter funds a live gauge through a distribution call only when its accrued emissions exceed both the gauge's remaining scheduled rewards and the minimum distribution threshold. Smaller allocations remain in the Voter. Basic-pool gauges distribute emissions across staked LP balances as rewards accrue. Slipstream gauges also restrict reward accrual to liquidity within the active price range. A larger pool allocation does not establish a fixed return for each depositor. The funded amount, competing liquidity, and applicable gauge rules determine the rewards that a position earns.

Fees, incentives, and rebases follow separate calculations

Pool voting rewards reflect the NFT's share of that pool's voting balance and the rewards credited to its reward contracts. In V2 basic pools, gauge stakers relinquish their corresponding trading fees for emissions. The gauge forwards those fees to its fee voting reward contract. The notification timestamp determines the epoch that receives the reward credit. V2 voting reward contracts calculate claimable rewards for completed epochs using voting balances evaluated one second before each epoch ends.

External incentives fund the pool's incentive reward contract to attract votes. Adding a new incentive reward token requires the Voter's whitelist approval. Incentive amounts can change between epochs, and other voters change the denominator that determines each NFT's share. An incentive total describes a pool reward budget. The amount that an NFT can claim follows its eligible voting balance and the credited rewards. The Voter provides fee and incentive claim operations separately from LP emission claims.

RewardsDistributor distributes VELO rebases to normal and managed locks; a deposited LOCKED NFT cannot claim from it directly. Claims for active locks add VELO to the locked position. Claims for expired normal locks deliver unlocked VELO to the NFT owner. Choosing a pool does not merge these rebases with its trading fees or external incentives.

Can I change my selected pools after voting?

An ordinary veNFT cannot submit a second pool selection in the same epoch after its vote succeeds. Its last-vote timestamp enforces that limit. Existing allocations carry over into later epochs until they are changed or reset. The owner can replace the allocation in a later eligible epoch; the vote operation clears the preceding allocation internally before recording the new one.

The poke operation refreshes the existing pool allocations using the NFT's current voting power. It retains the pool choices, so it can reconcile recorded weight after a lock amount or duration changes. It does not reset the last-vote timestamp or reopen an already used voting opportunity. The opening distribution window also blocks this refresh.

The reset operation clears the pool allocations and the NFT's voting flag in a later eligible epoch. It preserves the ability to cast a new vote during that epoch.

A disabled gauge blocks a new allocation

A selected pool must have a gauge that the Voter recognizes as alive when it processes the allocation. Selecting a missing or disabled gauge makes the vote revert, including changes that the call attempted earlier. The failed operation therefore does not leave a partially replaced allocation. An existing vote can also outlast the gauge's active status: killing a gauge stops its further emission allocation and returns its accumulated claimable emissions to the Minter.

A poke that retains the disabled gauge in its pool list also encounters the liveness check. Resetting or replacing that allocation requires the applicable epoch eligibility. The replacement must select live gauges; refreshing the same destinations cannot repair their disabled status.

Managed votes and protocol governance

Managed veNFTs aggregate deposited voting power, while governance votes address protocol decisions beyond the allocation among individual pools. These mechanisms share VotingEscrow positions, but their authorization and state rules differ.

Delegating pool choices to a managed strategy

A normal NFT that enters a managed veNFT changes to the LOCKED state. The managed NFT uses the aggregated power for pool voting. Deactivation blocks new pool votes and further deposits. Relay strategies can handle claims and conversion or compounding around that position, while managers control pool voting. The depositing NFT cannot cast a pool vote and enter a managed position in the same epoch. Deposits are blocked during the opening and final-hour windows, even for whitelisted NFTs. In a later epoch after its opening window, a successful withdrawal restores a normal NFT with a maximum-duration timed lock. If voting power remains in the managed NFT, the Voter refreshes its pool allocations; a disabled selected gauge makes that withdrawal revert.

If the last deposit's withdrawal leaves the managed veNFT with zero voting power, the Voter clears its allocation and last-vote timestamp. Restoring power through an eligible new deposit can permit another managed vote during that epoch.

Voting on protocol decisions and the emission budget

VeloGovernor uses governance voting power for protocol proposals. Delegation through VotingEscrow applies to governance power for permanent normal or managed locks and does not transfer pool-vote authorization. EpochGovernor addresses the emission budget after the tail-emission regime activates, with proposals to increase, hold, or decrease the following epoch's emissions. A pool vote chooses where the available VELO goes. It does not, by itself, choose how much VELO the protocol mints.

Frequently asked questions about Velodromefinance voting

Do I need an LP stake to earn veVELO voting incentives?

A V2 LP stake is not a prerequisite for earning veVELO pool voting incentives. Eligibility comes from the NFT's allocation to the pool and the rewards credited to its incentive contract. A funded LP gauge distributes a separate emission stream to its eligible stakers. Holding an LP position does not substitute for a veNFT pool vote.

Can I cast a pool vote in the block that transfers my veNFT?

V2 reports zero voting power for a veNFT during its ownership-transfer block. A nonempty allocation cannot assign usable weight in that block. A later block removes this temporary restriction, while the NFT's epoch eligibility and ordinary voting windows still apply. Transferring ownership also leaves the NFT's last-vote record intact.

Why does listing the same pool twice make a vote fail?

The V2 Voter rejects duplicate pool entries when the repeated entry encounters an allocation that the call already recorded. It raises NonZeroVotes rather than treating repeated entries as additional votes. Each selected pool should occupy one position in the allocation list, with its intended relative weight represented by that entry.

Does an empty pool list preserve my weekly voting opportunity?

A successful V2 vote with empty pool and weight lists still records the NFT's last-vote timestamp. It assigns no new pool weight, yet consumes the epoch's vote opportunity. In a later eligible epoch, such a call can also clear preceding allocations. The absence of a new pool allocation therefore does not prove that the NFT remains eligible to vote again.

Is the pool limit for Velodromefinance voting fixed?

The V2 pool-count limit follows the Voter's configurable maxVotingNum value. Governance can change that parameter, so a deployment's constructor setting does not establish its present limit. A vote that selects more pools than the configured allowance raises TooManyPools. The applicable value belongs to the Voter contract that processes the allocation.

Where do claimed voting fees and incentives arrive?

V2 voting reward contracts send claimed tokens to the current owner of the veNFT. An approved operator or the Voter can initiate an authorized claim, but that authorization does not redirect payment to the caller. The NFT's ownership at claim execution determines the recipient, while the requested reward tokens and accrued entitlement determine the payment.

What causes the UnequalLengths error in a pool vote?

The V2 Voter raises UnequalLengths when the pool-address list and relative-weight list have different lengths. Each weight corresponds to the pool at the same position in the other list. Matching lengths resolves that structural mismatch; gauge eligibility, usable voting power, and epoch restrictions remain separate requirements for accepting the vote.

Are my veNFT pool selections private?

V2 pool selections and allocations form public contract records. The Voter exposes the NFT's selected pools and per-pool weights, and its Voted event includes the caller, pool, NFT identifier, and recorded weight. These records allow others to inspect the allocation and associate the transaction with its submitting address.