Learn how to verify locked liquidity on-chain and display proof to your community.
This guide covers:
Checking if liquidity is locked
Verifying lock details on-chain
Displaying locks on your website
Why Verify Locks?
Build Trust: Show community you're committed
Marketing: Display locked liquidity prominently
Transparency: Prove anti-rug measures
Competitive Advantage: Stand out from scams
For Users/Investors
Due Diligence: Check before investing
Safety Score: Higher locked liquidity = safer
Verify Claims: Don't trust, verify
Exit Scam Protection: Confirm liquidity can't be rugged
Method 1: Using RealSafe Web App
Step 1: Get Lock Info
If you know the lock owner address:
Go to https://app.realsafe.io
Click "Search" or "Verify" in navigation
Enter wallet address or Lock ID
Search for locks by address or Lock ID
Step 2: View Lock Details
You'll see:
Lock ID: Unique identifier
Token Pair: Which tokens are locked (V3) or LP token (V2)
Amount: How much liquidity is locked
Unlock Date: When it can be unlocked
Condition: Any custom unlock conditions
Search results showing multiple locks
Detailed view of a specific lock
Step 3: Verify On-Chain
Click "View on Explorer" to see:
Transaction that created lock
Smart contract interactions
All details verified on-chain
Method 2: Using Block Explorers
Locker Contracts:
V3 Locker: 0x5F5362bB3A97CaE836776D56C6A6A685AC71b979
V2 Locker: 0x0aD3fC98972B5dE022bc34EbCA7d61b84b6d7320
Steps:
Go to https://monadscan.com
Search for locker contract address
Click "Read Contract" tab
Use view functions:
getOwnerLockIds(address) - Get all locks for address
getLock(uint256) - Get specific lock details
canUnlock(uint256) - Check if unlockable
Locker contract on Monad Explorer
Read Contract functions
Results from calling getLock function
Method 3: Using Smart Contract Calls
Reading Lock Data
Get all locks for an address:
Get specific lock details:
Check if can unlock:
Using cast (Command Line)
Get owner's locks:
Get lock details:
Interpreting Lock Data
Lock Structure (V3)
Key Fields to Check
isActive:
true: Lock is active, liquidity still locked
false: Lock has been unlocked
unlockDate:
Convert to date: https://www.unixtimestamp.com/
Must be >= current time to be locked
liquidity:
Amount of liquidity locked
condition:
0x0000...: No condition, time-based only
Other address: Custom condition set
Visual guide to understanding lock struct data
Displaying Locks on Your Website
Example embedded widget on a website
Option 2: Query Via API
GraphQL endpoint:
Example query:
GraphQL query in action
Full API docs →
Option 3: Custom Integration
Using ethers.js:
Verification Checklist
When verifying a project's locked liquidity:
Visual verification checklist
Advanced Checks
Sharing Proof of Lock
Create Shareable Link
Copy link: https://app.realsafe.io/lock/LOCK_ID
Share your lock proof easily
Generate Proof Image
Download image with lock details
Example proof badge for social sharing
Create Badge for Website
Badge displayed on project website
Common Verification Questions
"How do I know it's real?"
Check on block explorer (Monad Explorer)
Verify contract is official RealSafe contract
Check transaction history
All data is on-chain, cannot be faked
"Can the team unlock early?"
No, if unlock date hasn't passed
Smart contract enforces unlock time
Even contract owner cannot unlock early
"What if lock shows 'inactive'?"
Lock was already unlocked
Liquidity no longer locked
Check unlock date and current date
May have been unlocked legitimately
"Multiple locks vs single lock?"
Both are fine:
Single large lock: Simple, clear
Multiple staggered locks: Vesting schedule, progressive unlocks
Check total locked amount across all locks
FAQ - More questions answered
Questions? Reach out on X