getPositionLocks. The endpoint is unauthenticated; no signature is required to query.
List locks for a pool
Filter by owner
Lock data
EachLpLockInfo contains:
| Field | Description |
|---|---|
poolId | Pool identifier (LP identity public key) |
ownerPublicKey | Owner of the locked position |
lockUntilTimestamp | Unix-seconds string. "0" when the lock is indefinite |
isIndefinite | true when the lock has no expiry |
tickLower | Lower tick bound (V3 only; absent for V2) |
tickUpper | Upper tick bound (V3 only; absent for V2) |
tickLower and tickUpper are absent. For V3, both are present.
Checking a specific position
Interaction with other operations
AremoveLiquidity, decreaseLiquidity, or rebalancePosition call on a locked position is rejected before any Spark transfer is made. No funds move. Callers can retry the operation after the lock expires.
Read the duration before retrying. A bounded lock exposes its expiry as a Unix timestamp; an indefinite lock (isIndefinite === true) does not expose a release time.
Limitations
- Locks are per-position, not per-pool. Locking one owner’s position does not affect another owner’s position in the same pool.
- V3 locks match an exact
(tickLower, tickUpper)pair. A position at a neighboring tick range is not covered. - There is no on-chain record of a lock. State lives in the Flashnet settlement database alongside the rest of the pool state.