How to check if liquidity is actually locked.
Every token page claims liquidity is locked. Very few show you where. To check, find who holds the pool's LP tokens or position NFT, confirm that holder is a locker contract with no early exit, read its unlock date, and work out what share of the pool it covers. Chart sites help with the first step and often get the rest wrong.
The short version. v2 pool: open the LP token's holder list on the explorer. v3 or v4 pool: there is no LP token, so find the position NFT and check who owns it. Then read the locker, the date and the percentage. If you are not sure what locked liquidity means or what it proves, start with what locked liquidity is.
Why a screenshot proves nothing
The most common "proof" of a lock is an image in a Telegram channel. An image can be edited, can show a different token, or can show a lock that was already withdrawn. It also cannot tell you whether anyone keeps the power to move the position before the unlock date. Only the chain can answer that.
How to check if liquidity is locked on DexScreener
DexScreener is the fastest way to find a token's pair. It shows the pool type (v2, v3 or v4), the pair address, the pooled amount of each token and the pair age. Its "Go+ Security" and "Quick Intel" panels add checks such as taxes, mintable, proxy, honeypot and the LP holder count.
What it does not give you is the full answer: who holds the liquidity, until when, and whether anyone else can move it. Use DexScreener to find the pair address and the pooled amounts, then check the lock somewhere that reads the chain.
DEXTools and GoPlus
DEXTools shows liquidity, pooled amounts and a "DEXTscore & Audit" box covering contract verification, buy and sell tax, proxy and mint functions.
GoPlus is the data source behind DexScreener's Go+ panel. Its token security API lists a token's LP holders and an is_locked flag for each one, which is useful as a first signal but depends on GoPlus recognising the locker contract.
What scanners typically miss. Lock detection on scanners is usually built for v2 LP tokens held by lockers they already know. A v3 or v4 lock is a position NFT owned by a locker contract, and if the scanner does not recognise that contract, it reports the liquidity as not locked, or says nothing. The reverse also happens: a "locked" flag only tells you that a known locker holds something, not how much or until when. Treat scanner output as a lead and confirm on the explorer.
The explorer method, step by step
This works on any EVM chain and needs no wallet.
- Get the token contract address from the project's own site or the DEX pair, not from a chat message, where lookalike addresses are a standard trick.
- Find the pool and its type. A chart site gives you the pair address and says v2, v3 or v4.
- v2: open the pair contract's holder list. The pair contract is the LP token. The top holders are what you care about: a locker contract means locked, the dead or zero address means burned, an ordinary wallet means withdrawable.
- v3 or v4: find the position NFT and its owner. Open the pool's creation or first mint transaction, note the position manager and the token id that was minted, and call
ownerOf(tokenId)on the position manager. A locker contract means locked. Check every position in the pool, not just the first one. - Open the locker contract. Is the source verified? Search it for withdraw, owner, admin, migrate and emergency functions. Can an unlock date be shortened? A lock is only as strong as that code.
- Read the unlock date from the locker's lock record for that position.
- Calculate the share locked, below.
Worked example: what % of the liquidity is locked
v2 pool
Divide the locker's LP balance by the LP token's totalSupply. With illustrative numbers: total supply 1,000 LP, a locker holds 850, the dead address holds 100 and the deployer wallet holds 50. Then 85% is locked, 10% is burned, and 5% is withdrawable at any time. "Liquidity locked" is true, and so is "5% can be pulled today".
v3 or v4 pool
There is no LP supply to divide by, so compare the locked positions with the pool. Read the pool contract's balance of each token, then the token amounts in each locked position (the position manager, or the locker's own page, shows them). With illustrative numbers:
| Reading | Pool holds | Locked positions hold | Share locked |
|---|---|---|---|
| Token | 400,000,000 | 360,000,000 | 90% |
| WETH | 20.0 | 17.9 | 89.5% |
Here roughly 90% of the pool is locked and about 10% sits in positions that can be withdrawn. The two percentages rarely match exactly, because the pool's balances also include trading fees that have not been collected yet. Two more cautions: the pool's liquidity() only counts positions in range at the current price, so token balances are the safer comparison, and a pool with several positions needs every locked position added up before you divide.
What "locked" has to actually mean
Not all lockers lock. Before you trust one, confirm three properties of the locker contract itself:
- No admin or migrator path to the positions. Some lockers include an owner, emergency or migration function that can move a locked position. If someone other than the lock owner can move it, the lock depends on that key.
- Extend-only unlock times. If an unlock date can be shortened, it is not a deadline.
- Verified source code. If you cannot read the locker's code on the explorer, you are trusting a claim about a claim.
Can locked liquidity be rugged? lists every way a lock can still fail, with a 60-second checklist.
Four things that should stop you
| What you see | What it usually means |
|---|---|
| Lock found, but a small share of the LP or the pool | Most liquidity is still withdrawable |
| Unlock date within weeks of launch | The exit is scheduled, not prevented |
| Lock exists but is marked withdrawn | It already ended. The proof is historical (see what happens when a lock expires) |
| LP or position NFT held by an ordinary wallet | Liquidity is in a wallet, not a contract |
Example: checking a lock on Robinhood Chain
This section is specific to HoodLock, which runs only on Robinhood Chain. A v2 LP token there is an ERC-20, so it sits in HoodLock's token locker like any other balance. A Uniswap v3 or v4 position is an NFT and goes in the HoodLock Liquidity Locker. Most liquidity on this chain is in v3 and v4, and many launchpads here already lock or burn the launch position at graduation, so check what happened to yours first.
On Robinhood Chain you can skip the manual steps: the liquidity lock checker lists every v3 and v4 position HoodLock holds for a token or pool with its value and unlock date, and the token lock checker covers locked ERC-20 balances, including v2 LP tokens. Developers can do the same with two reads: ownerOf on the position manager, then lockIdOf(manager, tokenId) on the locker, as described in the contract reference.
HoodLock's lockers are verified on Blockscout, no admin function can move a locked position, and unlock times can only be pushed further out. You do not have to take that from us: the security model shows which functions to read.
Common questions
Does DexScreener show if liquidity is locked?
Not on its own. DexScreener shows the pair, the pooled amounts and third-party security panels, but those panels do not always say who holds the liquidity or until when, especially for v3 and v4 pools. Use DexScreener to find the pair, then confirm the lock on a block explorer or the locker's own page.
Why does a scanner say liquidity is not locked when it is?
Most lock detection is built for v2 LP tokens held by lockers the scanner already knows. A v3 or v4 lock is a position NFT owned by a locker contract, and if the scanner does not recognise that contract it reports the liquidity as unlocked. Check who owns the position NFT yourself.
Can a liquidity lock be faked?
The lock itself cannot be faked, because it is a transaction on a public chain, but the claim about it can. Screenshots, edited explorer pages, links to the wrong token and self-written lockers with a withdraw backdoor are all common. Always verify from the token or pool address yourself.
What if I can't find any lock for a token?
Then assume the liquidity is not locked. Absence of a lock is not proof of bad intent, but it means nothing prevents the liquidity from being removed, and you should price that risk in.
Does locked liquidity mean a token is safe?
No. A lock removes the classic rug pull, but a project can still have a mint function, concentrated holdings or simply fail. A lock is a strong signal about one specific risk, not a general safety rating.
How much of the liquidity should be locked?
Look for a large majority of the LP supply, or of the pool's value for v3 and v4. A lock covering a small fraction leaves most of the liquidity withdrawable, which defeats the purpose even though the project can truthfully say liquidity is locked.
Keep reading
- What locked liquidity is, and what it proves
- Can locked liquidity be rugged?
- What happens when a lock expires
- How to check if liquidity is burned
- What LP tokens actually are
- Burning vs locking liquidity
- Locking LP tokens from a Hood Launcher Classic launch
- Locking tokens launched on Robinlaunch
- Locking LP tokens, step by step
- Verify someone else's lock
Check any token in seconds
Paste a token or pool on Robinhood Chain and see every HoodLock liquidity lock on it, with the amount, value and unlock date. No wallet needed.
Check locked liquidity →