Velodromefinance Slipstream NFT exits and pool token collection
Velodromefinance Slipstream NFT positions exit through liquidity reduction and collection of the resulting pool tokens. If the position NFT is staked, withdraw it from its gauge first. Gauge withdrawal returns the NFT and settles gauge rewards; the position manager handles liquidity reduction and token collection.
Last updated ·
Key takeaway: A Slipstream gauge withdrawal returns the position NFT while leaving its pool liquidity in place until the position manager reduces it.
Staking status determines the starting point
An unstaked NFT position starts at the position manager, while a staked position starts at its gauge because staking transfers the NFT to that contract and records the original depositor for withdrawal authorization. The position manager represents these positions with ERC-721 NFTs, and the identifier selects the specific deposit that an exit will affect.
Direct pool deposits do not create the position-manager NFT required for Slipstream gauge staking.
An unstaked position
The NFT owner, or an approved operator, can request liquidity reduction through
NonfungiblePositionManager
. Its
positions
record identifies the pool tokens, tick spacing, tick bounds, and remaining liquidity. Other NFTs in the same account represent separate positions, so selecting one identifier leaves their liquidity untouched.
A position held by the gauge
The gauge holds the staked NFT and records its depositor separately; its
withdraw
function requires the caller's stake record to contain that position identifier. An NFT approval alone does not authorize another address to withdraw the depositor's gauge stake.
Gauge withdrawal leaves pool liquidity intact
A Slipstream gauge withdrawal returns the NFT and settles its accrued rewards, calling the position manager's collection operation before transferring the NFT. That collection handles any amounts already owed to the position. The gauge's withdrawal function leaves the NFT's recorded liquidity unchanged. Remaining liquidity can subsequently earn trading fees when swaps use its range, subject to the pool's unstaked-liquidity fee. Returning the NFT does not reverse the allocation of fees from the period when it was staked.
A Slipstream liquidity NFT also differs from the veVELO NFT that represents a VELO voting lock.
Liquidity reduction records tokens for collection
The position manager turns a selected liquidity reduction into owed balances for the pool tokens. The
collect
operation transfers available owed amounts to its specified recipient.
Reducing some or all liquidity
A
decreaseLiquidity
request specifies a strictly positive amount no larger than the position's recorded liquidity. A partial reduction leaves a residual position within the original tick bounds, whereas removing all reduces its liquidity to zero. The liquidity field does not directly express a quantity of either pool token. The pool price and the position's range determine the token amounts that the reduction releases.
Collecting principal and accrued fees
Liquidity reduction adds the removed token amounts to the position's owed balances. The manager also updates accrued fees, so collection can include removed principal and fees that accumulated earlier. Its limits apply separately to each pool token. Gauge emission rewards follow their own payment path; a pool-token collection does not claim those rewards.
Minimum outputs constrain the liquidity reduction
Each liquidity-reduction request specifies separate minimum outputs for the two pool tokens and an execution deadline. A zero minimum permits zero output for that token. A changed price can alter the token composition that a fixed reduction releases, so the manager compares the calculated amounts with
amount0Min
and
amount1Min
. If either amount falls below its minimum, the call reverts with
PS
. These checks constrain token quantities without fixing their combined cash value. The deadline sets the latest permitted execution time, and an expired request rejects that call's changes.
If gauge withdrawal succeeded in an earlier transaction, that earlier withdrawal remains effective. A failed reduction can consequently leave the NFT unstaked with liquidity intact. The remaining request must satisfy its own output limits and deadline; a completed unstaking transaction does not satisfy them.
A zero-liquidity NFT with tokens still owed
In this hypothetical case, a depositor has unstaked a Slipstream NFT and successfully removed all its liquidity. The NFT now reports zero liquidity and positive owed balances for both pool tokens. The depositor wants those assets in the receiving wallet.
The remaining operation is
collect
. Repeating
decreaseLiquidity
cannot remove anything from that NFT, since a new reduction requires a positive amount within the remaining liquidity. Zero liquidity describes the end of pool exposure. The owed balances describe assets that the position still has a claim to.
A successful collection with caps covering both owed amounts transfers available tokens to the designated recipient. The position then has no remaining liquidity or collectible token balance. Lower collection caps would leave a residual claim.
Reward deductions depend on the gauge configuration
A penalty-enabled Slipstream gauge deducts emission rewards only when its penalty rate is positive and its configured staking interval has not elapsed. The same condition applies when withdrawal settles gauge rewards.
The gauge reads the penalty rate from its factory and the minimum staking interval for its pool, then compares the claim time with the deposit timestamp plus that interval. The deduction equals the emission reward multiplied by the rate in basis points, divided by 10 000. The gauge sends this deduction to the minter. It applies to the reward payment, leaving the position's underlying pool-token balances outside that calculation.
In this implementation, the configured interval changes early reward payments without imposing a corresponding lock on the position NFT. Pool voting influences incoming emission allocation; the gauge's local calculation determines the payment during an exit.
A killed gauge can still return its NFTs, even though it stops receiving new emissions.
Recorded balances and token receipt establish completion
A completed full exit leaves zero liquidity and no remaining collectible pool-token balance for the NFT. The recipient's actual receipt establishes what collection delivered. Gauge rewards have their own settlement, so an emission payment alone does not establish that the pool principal has reached the recipient.
The
positions
view reports stored accounting, which can omit fees that an active position has accrued since its last update. Comparing only the NFT count in a wallet misses both remaining liquidity and uncollected assets. The position identifier, its pool-token fields, and the actual collection recipient define which assets the exit concerns.
The empty NFT can remain in the wallet after asset withdrawal, and burning it is optional cleanup. The burn operation requires zero liquidity and cleared owed balances. Receiving the pool tokens does not require destroying that empty position record.
Velodromefinance: quick answers
Does collecting Slipstream fees require a liquidity reduction?
An unstaked Slipstream position can collect accrued fees without reducing its liquidity. The position manager updates fee accounting during collection when liquidity remains positive. The NFT owner or an approved operator must authorize the call. A staked position can accrue gauge emissions while its liquidity is in the active tick and rewards are available; its corresponding trading fees follow the voter fee path.
Can a Slipstream liquidity exit close my veVELO voting lock?
A Slipstream liquidity exit does not close a veVELO voting lock. The liquidity-position NFT and the voting-escrow NFT represent different assets in different contracts. Reducing pool liquidity or collecting its tokens affects the selected Slipstream position. Withdrawing escrowed VELO follows the voting lock's own eligibility rules, so a completed pool exit does not unlock those tokens.
Do I need separate transactions for liquidity reduction and token collection?
The Slipstream position manager supports combining liquidity reduction and collection in one multicall transaction. Reduction must precede collection of the resulting amounts. The manager's multicall runs its own methods; gauge withdrawal is a separate contract call with its own depositor check. A failure inside the manager's multicall reverts that combined transaction.
Why can the Collect event differ slightly from the tokens received?
Core rounding can make the actual collected amounts slightly smaller than the amounts recorded in the Collect event. The manager emits the amounts that it accounts for, while its function returns the amounts that the pool actually transferred. Small differences can occur in the tokens' base units. The recipient's received amounts determine what that collection delivered.
What happens when a collection request uses zero for both token caps?
A Slipstream collection request with both token caps set to zero reverts. The position manager requires at least one positive maximum collection amount, even when the position has nothing owed. Setting one cap to zero leaves that token uncollected while a positive cap permits collection of the other token, subject to the amount actually owed.
Can I collect Slipstream pool tokens to a different recipient address?
The position manager allows an authorized collection call to specify a recipient other than the NFT owner. The recipient field directs the pool-token transfer; it does not grant authority over the NFT. A zero recipient value directs collection to the position manager itself. It does not automatically select the depositor's wallet, so the specified destination determines where the tokens arrive.
Will accrued trading fees help satisfy my minimum withdrawal amounts?
Accrued fees do not count toward the minimum token amounts checked by decreaseLiquidity. The manager checks the amounts released by the liquidity reduction before adding accrued fees to the position's owed balances. Combining collection with reduction does not change that check. A position can therefore have fees available for collection while its requested liquidity reduction fails an output minimum.