Locking Liquidity
Comprehensive guide to locking your V2 LP tokens and V3 NFT positions with RealSafe.
Overview
This guide covers:
Preparing your liquidity for locking
Creating locks with different parameters
Understanding lock settings and options
Best practices for different use cases
Before You Lock
Check Your Assets
For V2 LP Tokens:
Verify you have LP tokens in your wallet
Know the token pair (e.g., ETH/USDC)
Check token balance and decimals
For V3 Positions:
Have an active V3 position (NFT)
Position must have liquidity > 0
Know your position's token ID
Have Enough Gas
Keep 0.001 ETH/MON for gas + creation fee
Monad Testnet: ~0.0001 MON creation fee
Monad Testnet: ~0.0001 MON creation fee
Locking V2 LP Tokens
Step-by-Step Process
1. Get Your LP Token Address
Your LP token address can be found:
Uniswap: Under "Your Liquidity" → Click on pool
Monad Explorer: Check your wallet transactions
Pool info page: Look for "LP Token" address
Find your LP token address in Uniswap
2. Navigate to V2 Locker
Go to https://app.realsafe.io
Connect wallet
Select "V2 Locker" tab
3. Enter Lock Details
Empty V2 lock form
LP Token Address:
Paste or select from dropdown
Contract verifies it's a valid LP token
Amount:
Enter how many LP tokens to lock
Can lock partial or full balance
Min amount: 0 (but should be meaningful amount)
Unlock Date:
Choose date/time when you want to unlock
Or enter days from now
Max: 10 years from now
Choose your unlock date
Permanent Lock (Optional):
Check this for permanent locks
WARNING: Can NEVER be unlocked!
Only use for token burns or permanent commitments
Warning when enabling permanent lock
Condition (Advanced):
Leave as "None" for simple time-lock
Or select custom condition contract
See Conditional Unlocks
Advanced: Custom condition options
Completed V2 lock form with all details
4. Approve LP Tokens
Click "Approve" button
Transaction approval in wallet
Wait for confirmation
5. Lock Tokens
Click "Lock" button
Review summary carefully
Pay creation fee (0.0001 ETH/MON)
Confirm transaction
Wait for confirmation
6. Save Your Lock ID
Note the Lock ID shown after success
You'll need this to manage your lock
Also visible in "My Locks" page
Locking V3 Positions
Step-by-Step Process
1. Find Your Position
Your V3 positions show in:
Uniswap V3 interface
RealSafe app (auto-loads your NFTs)
Position Manager contract
2. Navigate to V3 Locker
Go to https://app.realsafe.io
Connect wallet
Select "V3 Locker" tab
Your positions load automatically
Your V3 positions displayed
3. Select Position to Lock
Click on the position card
Review position details:
Token pair
Liquidity amount
Fee tier
Price range (tick lower/upper)
Selected position with full details
4. Configure Lock
Unlock Date:
Choose when position can be unlocked
Max 10 years from now
Collect Address:
Where trading fees go when you claim them
Default: Your wallet address
Can change later via
setCollectAddress()
Set where trading fees should go
Condition (Advanced):
Custom unlock logic (optional)
Leave as "None" for time-based only
5. Approve NFT
Click "Approve" button
Approves NFT transfer to locker
Confirm in wallet
6. Lock Position
Click "Lock Position" button
Review all details carefully
Pay creation fee (0.0001 ETH/MON)
Confirm transaction
7. Manage Your Lock
After locking, you can:
Claim trading fees anytime
Extend unlock date
Transfer ownership (2-step)
Change collect address
Cannot decrease liquidity
Cannot unlock early
Lock Settings Explained
Unlock Date
What it is:
Unix timestamp when lock can be unlocked
Must be future date
Max 10 years from now
Choosing wisely:
90 days: Good for initial trust building
180 days: Standard for project liquidity
1 year+: Long-term commitment signal
Consider: Project roadmap, vesting schedules
Can extend:
Yes, anytime before unlocking
Can extend multiple times
Cannot shorten once set
Collect Address (V3 Only)
What it is:
Address that receives claimed trading fees
Not the same as lock owner
Common setups:
Personal wallet: Keep fees for yourself
Team treasury: Pool fees for team
Revenue share: Send to revenue contract
Can change: Via
setCollectAddress()
Conditions (Advanced)
What they are:
Smart contracts with custom unlock logic
Alternative to time-based unlocks
Must implement
ILockConditioninterface
Built-in options:
TimeBasedCondition: Admin-controlled timestamps
Custom: Deploy your own
Learn more:
Conditional Unlocks Guide
Use Cases & Examples
Project Launch: Initial Liquidity Lock
Scenario: New project launching, wants to lock 100% of initial liquidity.
Recommendation:
Lock Type: V2 or V3 (based on DEX version)
Amount: 100% of liquidity
Unlock Date: 90-180 days
Permanent: NO
Condition: NoneWhy:
90-180 days shows serious commitment
Not permanent allows relocking later
Builds initial trust with community
Team Vesting: Staggered Unlocks
Scenario: Team allocation needs to vest over 2 years.
Recommendation:
Create 4 separate locks:
- Lock 1: 25%, unlock in 6 months
- Lock 2: 25%, unlock in 12 months
- Lock 3: 25%, unlock in 18 months
- Lock 4: 25%, unlock in 24 monthsImplementation:
Use V2 locker (can add to locks)
Or create 4 separate V3 positions
Progressive unlocking shows alignment
Yield Farming: Long-term LP
Scenario: LP wants to commit long-term and collect fees.
Recommendation:
Lock Type: V3 (to claim fees)
Unlock Date: 1 year
Collect Address: Your wallet
Condition: NoneWhy:
V3 allows fee claiming while locked
Long duration (1 year) for farming rewards
Can extend if yields remain good
Partnership: Conditional Release
Scenario: Partnership liquidity released after milestones.
Recommendation:
Lock Type: V3
Unlock Date: 2 years (safety fallback)
Condition: MilestoneCondition contractImplementation:
Custom condition tracks milestones
Can unlock early if milestones met
Time-based fallback ensures eventual unlock
Best Practices
Do's
Test first: Lock small amount on testnet
Verify dates: Double-check unlock dates
Save Lock IDs: Keep record of all locks
Communicate: Announce locks to community
Extend proactively: Show continued commitment
Claim regularly: Don't let V3 fees accumulate too long
Don'ts
Don't lock permanently: Unless burning forever
Don't rush: Review all details before confirming
Don't lose keys: Backup private keys securely
Don't forget gas: Keep ETH/MON for future transactions
Don't ignore warnings: Pay attention to error messages
Adding to Existing Locks (V2 Only)
V2 Locker allows adding more LP tokens to existing locks.
How to Add
Go to "My Locks"
Find lock to add to
Click "Add to Lock" button
Enter additional amount
Approve tokens
Confirm add transaction
Add more LP tokens to existing lock
Enter additional amount to add
Benefits
Cheaper: Lower gas than creating new lock
Simpler: One lock ID to manage
Same unlock: All tokens unlock together
Limitations
Only available for V2 locks
Cannot add to V3 locks
Must be same LP token
Cannot extend while adding (two separate actions)
Next Steps
Unlocking Guide - How to unlock when time comes
Verifying Locks - Show your locks to community
FAQ - Common questions answered
Need help? Reach out on X
Last updated
