Velodrome is where VELO locks become veNFT positions
Velodrome is the protocol whose VotingEscrow converts locked VELO into an ERC-721 veNFT with time-weighted veVELO power and returns the tokens only after maturity. The V2 lifecycle is straightforward: choose a term, read the veNFT state, extend or add tokens when needed, then withdraw from a normal expired position.
A four-year maximum lock gives the highest initial voting power, while every shorter dated lock starts below its VELO balance.
Choose the lock term before VELO leaves the wallet
A Velodrome lock should match the VELO amount, intended holding period, and need for future liquidity before the first approval.
Amount and term
VotingEscrow accepts a positive amount and rejects 0 VELO. The maximum term is 4 contract years, calculated as 4 × 365 days, or 126,144,000 seconds. The contract rounds requested unlock times down to whole 1-week intervals, each 604,800 seconds long. Consequently, a date selected as exactly four calendar years may need a slightly shorter request to fit the on-chain ceiling. The interface shows the resulting expiry after simulation, and that timestamp governs later withdrawal. A dated lock can’t be shortened or cancelled once created, so choose maturity from the returned timestamp rather than from a rough calendar estimate.
Wallet and network context
The owner starts on Optimism, chain ID 10, with VELO as an ERC-20 balance and ETH for execution. MetaMask and Rabby can send the approval and create-lock calls; Ledger or Trezor may sign through a compatible wallet. Creation mints 1 ERC-721 token ID. That veNFT records the position, while VotingEscrow holds the deposited tokens.
What does a Velodrome lock cost?
A Velodrome lock charges no separate protocol entry fee; the wallet pays Optimism execution gas in ETH for each required transaction.
Without an adequate allowance, the path contains 2 on-chain actions: 1 ERC-20 approval and 1 VotingEscrow creation call. With sufficient allowance already set, creation takes 1 action. VELO values use 18 decimal places, although wallets display whole-token units. Gas price and gas used set the ETH total, so a wallet simulation supplies the live amount. The VELO placed into escrow isn’t a charge; it remains the locked principal attached to the veNFT.
Reading the veNFT balance, power, and expiry
The Velodrome position displays 3 distinct facts: locked VELO, current veVELO voting power, and the weekly rounded unlock timestamp.
Locked balance and voting power
The locked amount records principal and doesn’t decay. veVELO power follows remaining time and declines linearly until a dated lock reaches 0 power at expiry. A maximum-duration position begins near 1 veVELO per VELO after weekly rounding; a 1-year term begins near 25% of the locked amount. The protocol’s maximum is 4 × 365 days, and the contract rounds every dated expiry down to a 1-week boundary. VotingEscrow exposes this timestamp-based accounting through EIP-6372, while EIP-4906 supports NFT metadata updates after state changes.
Worked example
All changing inputs in this worked example are hypothetical: the holder locks 800 VELO for the maximum term, then lets 365 days pass without extension. Ignoring only creation’s weekly rounding, initial power is about 800 veVELO. After 365 days, 3 of the contract’s 4 years remain, so 800 × 3 ÷ 4 = 600 veVELO. Extending back to maximum lifts displayed power toward 800 veVELO and moves expiry later. Before extension, the concrete estimated result is 600 veVELO, alongside an unchanged locked balance of 800 VELO.
Can you add VELO or extend an existing lock?
An owner can add VELO to an active veNFT, extend a normal dated lock, or perform both adjustments as separate state changes.
Adding principal
Adding tokens increases locked VELO immediately and recalculates veVELO from the same existing expiry. It doesn’t restart the term. VotingEscrow rejects a 0-value increase, and an expired dated lock can’t receive an increase through the standard amount function. The
depositFor
path lets another address add VELO to a valid normal or permanent position; managed additions follow distributor permissions. One successful addition creates a new checkpoint and transfers the added ERC-20 amount into escrow.
Moving the expiry
An extension sets a later weekly rounded timestamp and raises current power because more time remains. The new date must exceed the old date, stay within 126,144,000 seconds from execution, and belong to a normal, unexpired veNFT. An extension never reduces the locked amount. Permanent and managed positions follow different state transitions, so the standard increase-unlock-time call doesn’t apply to them. Each adjustment spends Optimism gas, and the contract records amount increases and term extensions as separate calls.
Merge, split, permanent, and managed states
Velodrome offers advanced state changes for consolidating locks, dividing ownership units, preserving power, or placing voting power under a managed strategy.
VotingEscrow tracks 3 main escrow states: NORMAL, LOCKED, and MANAGED. A normal veNFT supports ordinary lifecycle actions. Depositing it into 1 managed veNFT changes it to LOCKED, and the Voter contract controls its managed withdrawal. Managed withdrawal can’t occur in the same weekly epoch as the deposit; when available, it restores a normal lock, adds allocated locked rewards, and sets the term near the 4-year maximum. This route changes who directs the combined voting power during the managed period, so it belongs to position administration rather than final token withdrawal.
Merge combines 2 normal positions into 1 destination veNFT. The source token ID disappears, balances add, and the later dated expiry survives unless the destination is permanent. Split performs the inverse at the ownership-unit level: 1 eligible veNFT is burned, and 2 new token IDs are minted with the same expiry and divided balances. The team must enable split permission, and a voted position must first leave its active vote state.
A permanent lock fixes voting power at the locked amount and removes time decay. Unlocking that status doesn’t free VELO immediately. The contract converts it to a normal dated lock ending near the maximum term, rounds the expiry to 1 week, and clears delegation. An owner who expects a near-term exit shouldn’t treat the permanent toggle as a shortcut to maturity.
Withdrawal after maturity
Withdrawal succeeds only when a normal Velodrome veNFT has expired, carries no active pool vote, and the caller controls the token ID.
The ordinary withdrawal call checks 4 conditions: ownership or approval, NORMAL escrow type, a non-permanent flag, and block time at or beyond expiry. If Voter still marks the veNFT as voted, reset it after the protocol permits that state change, then withdraw. Once checks pass, VotingEscrow burns 1 ERC-721 token ID, subtracts the locked amount from escrow supply, and transfers the recorded VELO balance to the caller. The returned amount is principal recorded in that lock; separately claimable fees, incentives, and rebases follow their own reward-contract paths.
Use the on-chain expiry, not a calendar estimate. Weekly rounding makes the displayed timestamp the only maturity boundary that the contract enforces.
ETH remains necessary for the final Optimism transaction, even though the output is VELO. After confirmation, the veNFT no longer exists and can’t be extended, merged, or reused. A holder who wants a fresh lock creates a new ERC-721 position, beginning a separate lifecycle with a new token ID, term, and voting-power curve.
Key questions about Velodrome
Does transferring a veNFT transfer the right to withdraw its VELO?
Transferring a Velodrome veNFT also transfers control of its locked VELO and eventual withdrawal right. ERC-721 ownership carries the recorded lock and voting power, while VELO stays inside VotingEscrow until maturity. The recipient receives the token ID and eligible management rights, and any active vote or state restriction continues to follow the position.
When is a Velodrome unlock date rounded?
Velodrome rounds the requested unlock timestamp down to the nearest whole week when a dated lock is created or extended. The contract uses 604,800-second intervals, so the recorded expiry lands slightly earlier than an unrounded request. Read the final timestamp after simulation or confirmation because that value, rather than the calendar date entered in the interface, controls maturity.
Can another wallet add VELO to my existing veNFT?
Another wallet can add a positive VELO amount to an active normal or permanent veNFT through the public deposit-for path. The sender doesn’t take ownership, and the addition preserves the existing expiry on a dated lock while creating a new balance checkpoint. It can’t revive an expired dated lock, and the sending wallet pays the Optimism transaction gas.
Does Velodrome send withdrawn VELO to a chosen recipient?
Velodrome’s standard withdrawal has no separate recipient parameter, so VotingEscrow sends VELO to the address that calls the function; that caller must own the veNFT or hold approval, making the chosen calling address the destination for the unlocked balance once every withdrawal condition passes successfully.
Is a permanent lock immediately withdrawable after switching back to normal?
A permanent lock isn’t immediately withdrawable after its owner switches it back to normal. The change assigns an expiry near the 4-year maximum, rounded down to a weekly boundary. Voting power begins decaying from that new schedule, but VELO remains escrowed. Standard withdrawal opens only after the new timestamp arrives and the position carries no active vote.
Can I reactivate an expired veNFT by depositing more VELO?
An expired dated veNFT can’t be reactivated by depositing more VELO. The standard amount-increase path rejects that state, so it won’t restart the token ID. Withdraw the matured principal, then create a new lock with a new term if continued voting power is desired. New creation mints a separate ERC-721 token ID and starts a fresh curve.
Do Velodrome rebases remain claimable after a veNFT expires?
VELO rebases remain claimable from an expired veNFT before its principal position is withdrawn. RewardsDistributor handles that claim separately and pays unlocked VELO to the owner. Trading fees and incentives also sit in distinct reward contracts. Their claimability follows voting checkpoints, so the principal-withdrawal transaction shouldn’t be treated as an automatic claim of every reward balance.
Will MetaMask or Rabby always display the veNFT artwork?
MetaMask and Rabby don’t always display the veNFT artwork. Either wallet may omit or delay the image while ERC-721 ownership and lock state remain valid on Optimism. The token ID, owner, locked amount, expiry, and veVELO power live in contracts. A Ledger or Trezor controls the same address through the connected wallet, so rendering doesn’t determine access.