Position Locking

VinuSwap extends the standard position manager with position locking - a feature that prevents liquidity removal until a specified timestamp.

Overview

Position locking allows:

  • Locking liquidity until a future timestamp

  • Demonstrating commitment to liquidity provision

  • Creating vesting schedules for LP tokens

  • Enabling trustless liquidity commitments

How It Works

Each position has a lockedUntil field:

struct Position {
    // ... standard fields ...
    uint256 lockedUntil;  // Timestamp until position is locked
}

When block.timestamp < lockedUntil:

  • decreaseLiquidity() - Blocked

  • burn() - Blocked

  • collect() - Allowed (fees can always be claimed)

  • increaseLiquidity() - Allowed (can add more liquidity)

Locking a Position

Basic Lock

Lock with Position Creation

Extending Locks

Locks can be extended but never shortened:

Checking Lock Status

Collecting Fees While Locked

Fees can always be collected, even from locked positions:

Adding Liquidity to Locked Positions

You can increase liquidity on locked positions:

Handling Locked Position Errors

Use Cases

1. Launch Liquidity Lock

Lock initial DEX liquidity to build trust:

2. Team Token Vesting

Create locked positions for team allocations:

3. Partnership Commitments

Lock liquidity as part of partnership agreements:

4. Progressive Unlock Schedule

Create multiple positions with staggered unlocks:

Events

Monitoring Locked Positions

Last updated