In the app
Sign in with an EVM wallet (MetaMask, Rabby and others) or pick Robinhood when you sign up with email, and your account runs on Robinhood Chain.Fund in ETH or USDG
ETH pays gas. Choose ETH or USDG as your Base Token for new positions. With USDG, Keep ETH tops up your gas automatically.
Uniswap V3 and V4
Zap in from ETH or USDG, pick a range, and close back into the currency you opened with.
Tokenized stocks
The Stocks filter shows pools holding Robinhood-issued stock tokens, matched by contract address.
Copy LP with guards
Hooked V4 pools are only copied if you allow them, fast flippers get a warning, and leaders whose profit doesn’t come from fees are switched off.
- Positions are identified by their Uniswap token ID, shown as
#1234567. - Every copy keeps back a little ETH (at least 0.001 ETH) to pay for its own exit. WETH does not pay gas.
- An automatic copy is skipped as Too small for gas when gas to open and close it would be more than 3% of its size. We suggest copying with at least 0.08 ETH of net worth. See Copy LP on Robinhood Chain.
- Claim SOL, Fund protection and compound are Solana only.
Overview
LP Agent indexes Uniswap V3 and Uniswap V4 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
/pools/{poolId}/positions needs chain=ROBINHOOD for a Robinhood pool. On Robinhood
its positionState is always empty and activeBin is omitted, since both are Meteora
DLMM bin data, and platform is ignored in favour of the pool’s own protocol./pools/{poolId}/onchain-stats and /pools/{poolId}/top-lpers accept chain and
platform like the other endpoints. chain is optional there: a Uniswap V3 pool address
or Uniswap V4 pool ID (the 32-byte 0x hash) is treated as Robinhood when you leave it
out. Either ID works in any letter case.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:Pass the symbol (
quote_token=USDG), not the address.Pool discovery filters on Robinhood
Pool discovery filters on Robinhood
GET /pools/discover?chain=ROBINHOOD differs from Solana in a few ways:min_bin_step,max_bin_step,min_organic_scoreandmax_organic_scoreare Solana concepts and are ignored.- Browsing hides pools under $5,000 liquidity. Pass
min_liquidity,show_small_pools=trueorsearchto see them. - Browsing also hides pools that claim at least 500 of 24h
volume, the signature of TVL painted by a single-sided deposit.
searchskips this. category=stocknarrows to pools holding a tokenized stock from Robinhood’s on-chain asset registry.searchmatches0xaddresses and Uniswap V4 pool IDs in any letter case.
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 parameter default to every protocol served on the
requested chain: meteora,meteora_damm_v2 on SOL, uniswap_v3,uniswap_v4 on
ROBINHOOD. Pass it to narrow the result. The older names protocol (overview,
revenue) and type (discover) are still accepted.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.