LP custody is RobinX's reading of who holds the live liquidity positions in a Robinhood Chain token's main pool, taken from chain state. It answers one narrow question, who could remove the liquidity, and nothing wider. It is served on Alpha and Omega keys in the token report API and the one-call check, in the caller webhook alerts and in the Omega signal's checks.
In a study of the pools a paper test entered between 14 and 17 August 2026, of 57 Uniswap v3 pools where a plain wallet held a liquidity position when the paper position was opened, 55 lost 90% or more of their liquidity to that holder inside 72 hours, half of them within ten minutes; of 52 pools whose positions were all held by contracts, none did. That study called the field an instrument, not a gate. The reading on the report is that instrument: an observation about custody, never a prediction about any one pool.
| Reading | Meaning |
|---|---|
wallet | At least one live position in the main pool is held by a plain address (no code). That address can remove its liquidity in one transaction. |
contract | Every live position is held by a contract: a locker, a launchpad hook, a vault or something else. The reading says a contract holds it, not what the contract can do. |
burned | Every live position is held by the zero or dead address. |
withdrawn | The main pool has no live liquidity left. |
unknown | Nothing resolvable: a Uniswap v2 main pool, a pool whose positions could not be read within the budget, or no indexed pool. |
Uniswap v3. The pool's Mint and Burn logs give the positions. A position minted through the position manager is an NFT: its token id comes from the mint transaction, the manager returns its live liquidity, and the NFT's owner is the holder. Any other minter is a contract holding the position directly, since a direct mint needs a callback. Uniswap v4. The pool manager's liquidity-modification logs, summed per sender and salt, give the live positions; a position added through the v4 position manager is an NFT whose owner is the holder; any other sender holds it itself. An address with no code is a wallet, an address with code is a contract, the zero and dead addresses are burned.
A token is judged on its main pool: the one holding the most liquidity in range at the current price across its pools. Other pools are summarised beside it. Before 30 September 2026 the reading could judge a thin pool while the token's real market sat elsewhere; it was corrected that day and every stored reading was taken again.
unknown: v2 pairs are not read.unknown rather than a partial answer.contract is not "locked". A contract may be a time lock or a hook that can withdraw at will; RobinX does not read the contract's code.wallet is not "will be pulled". It is a capability, not a statement of intent.contract, including a wallet that has delegated code to itself (EIP-7702) where the chain allows it; such a holder can still withdraw.In GET api.robinx.io/report/{address} as lp on Alpha and Omega keys (free and per-call reports do not carry it); in GET api.robinx.io/check/{address} on the same keys, where withdrawn is a blocker and wallet a warning; in the caller webhook alert as lp, beside the caller's record and the deployer record; and in the Omega signal's checks as lp_custody, where ?exclude_flagged=true leaves out signals whose custody reads wallet or withdrawn (and signals with an avoid or serial_spammer verdict or a launch-template launch). A tokenized stock has no custody reading. The public token page does not show it.
Not done. No reading of the holder's identity, no reading of a locker's terms, no prediction. A rule-based observation from public chain state; its receipt is the pool, the number of live and wallet-held positions, the holding wallet's address and when it was read.
Look up a token How to read a token report