Overview
LP Agent indexes Uniswap V3 liquidity on Robinhood Chain, an EVM network. The public API serves that data through the same endpoints you already use for Solana — you select the network with achain query parameter.
chain defaults to SOL. Every existing integration keeps working untouched — you
only pass chain=ROBINHOOD on the requests where you want Robinhood data.Selecting a chain
chain value falls back to SOL rather than returning an error, so a
typo produces Solana data — not a 400. Check the value you send.
Endpoint support
Available on both SOL and ROBINHOOD
Available on both SOL and ROBINHOOD
Solana only
Solana only
These endpoints have no Robinhood Chain equivalent today. They either read
Solana-specific pool state or build and land Solana transactions through Jito
bundles, which has no EVM counterpart.
Response differences to expect
Robinhood responses use the same envelope as Solana, but a few fields carry different conventions. Handle these explicitly rather than assuming Solana shapes.Position IDs are manager + token ID
Position IDs are manager + token ID
A Robinhood position ID is the Uniswap V3 position-manager address and the NFT token
ID, joined by a hyphen:
0x1234…abcd-5678. The API also accepts the fully qualified
robinhood:0x1234…abcd-5678 form.Because that shape is self-identifying, GET /lp-positions/position resolves the
chain from the ID when you omit chain. Solana position IDs stay base58 mint
addresses.Native ETH is reported under the wrapped address
Native ETH is reported under the wrapped address
GET /token/balance returns the native ETH balance under the wrapped native
token address, not the zero address. On Solana, native SOL appears under the wrapped
SOL mint and the response is additionally filtered to holdings worth more than
$0.02; the Robinhood response applies no such dust filter.Quote tokens for pool discovery
Quote tokens for pool discovery
GET /pools/discover?chain=ROBINHOOD filters by these quote tokens:Transaction history is filtered differently
Transaction history is filtered differently
GET /lp-positions/logs returns economic events only. On Solana, open and close
rows are metadata and are dropped. On Robinhood, close and collectGross are
dropped — collectGross is the raw Uniswap Collect payout, which the API splits into
separate decrease and fee rows — while open is kept because Uniswap V3 records the
initial deposit there. Logs are capped at 200 rows per position.Protocol defaults per chain
Protocol defaults per chain
Endpoints that take a
platform or protocol parameter default to the one protocol
served on the requested chain: meteora on SOL, uniswap_v3 on ROBINHOOD. Pass
the parameter explicitly to override it.Known limitations
- Swap legs are outside the ledger. Position PnL measures the liquidity leg only. The swaps that enter and exit a position — up to four per cycle — are not booked into it, and their cost is material relative to typical LP gains.
- Open positions do not carry a live value. The stored current value of an open
position is not continuously refreshed, so any PnL derived from it is unreliable while
the position is open. Use
GET /lp-positions/positionfor a live read. - Reconciled PnL is not yet applied on Robinhood. The audit pass that corrects Solana position PnL does not currently reach Robinhood rows, so Robinhood values are the raw ledger figures.