Skip to main content

Returns

Arguments

Usage Guidelines

  • Query by pairAddress to get all locks for a specific trading pair, or by tokenAddress to get locks across all pairs containing that token
  • networkId is required — specify the chain (e.g., 1399811149 for Solana, 1 for Ethereum)
  • Each lock includes ownerAddress (who created the lock), lockerAddress (the locker contract), and timing info (createdAt, unlockAt)
  • lockProtocol indicates the locking mechanism: BURN, UNCX_V2, UNCX_V3, BASECAMP_V1, BITBOND, METEORA_DAMM_V2
  • pairLiquidityData provides totalLiquidity for each pair — sum liquidityAmount from items to get total locked
  • Use cursor for pagination when there are many lock records

Troubleshooting Tips

liquidityLocks returns individual lock records with details like owner, unlock time, and amounts. liquidityMetadata returns aggregated lock data (total locked vs total liquidity) without individual lock details. Use liquidityLocks when you need to display a list of locks or check specific unlock dates.
When unlockAt is null, the liquidity is permanently locked. This typically happens with BURN locks where LP tokens are sent to a burn address, or locks created without an expiration. These locks cannot be withdrawn.
For concentrated liquidity pools (UniV3, Orca Whirlpool), liquidity positions are represented as NFTs. liquidityNftData contains the nftTokenId and nftPositionManagerAddress for these positions. It’s null for traditional LP token locks.
Sum the liquidityAmount from all items to get total locked liquidity, then divide by totalLiquidity from pairLiquidityData: lockedPercentage = sumOfLiquidityAmounts / totalLiquidity * 100.