Query liquidity history
Combine swaps and liquidity, or request only liquidity transactions.
Stream liquidity live
Follow a token, a pool, or a liquidity provider with five room scopes.
Query liquidity history
The four token trade-history routes acceptevents and enrich. Choose the scope you need:
events=tradesis the default: buys and sells only.events=allreturns swaps, liquidity additions, and liquidity removals in one chronological feed.events=liquidityreturns onlyadd_liquidityandremove_liquidityevents.enrich=identityadds current wallet identity to each returned row, including available KOL profiles, tags, trading platforms, developer/pool labels, and SNS names. Unknown wallets returnidentity: null.
trades array. These filters apply to the four token-scoped routes above, not the wallet-wide, whale/KOL, or perpetual endpoints.
Use the TypeScript SDK
Install@solana-tracker/data-api version 0.5.0 or later. The history methods accept events, enrich, limit, and sortDirection; pass nextCursor back unchanged to load more activity.
Load the next page
Uselimit from 1 to 500 (default 250) and sortDirection=DESC for newest first or ASC for oldest first. For events=all and events=liquidity, nextCursor is an opaque string. Pass it back unchanged with the same token, pool, wallet, events, and sortDirection.
showMeta=true adds token metadata to the swap rows only. Liquidity rows keep exact token amounts without swap prices, USD volume, or PnL. hideArb does not remove liquidity actions. Omit enrich when you do not need wallet identity.
Stream liquidity live
Connect towss://datastream.solanatracker.io/{apiKey} with your Data API key. Datastream is available on Premium, Business, and Enterprise plans.
Choose a room
liquidity:{mint}— all liquidity actions involving a token.liquidity:{mint}:{pool}— a token’s activity in one pool.liquidity:{mint}:{pool}:{wallet}— one wallet’s activity for that token and pool.liquidity:pool:{pool}— all liquidity actions in a pool.liquidity:wallet:{wallet}— a liquidity provider’s activity across pools and tokens.
Subscribe with the SDK
The SDK handles heartbeats and reconnects. Set{ enriched: true } for wallet labels, or omit it for the base room. Liquidity callbacks receive one event at a time.
transaction:* rooms contain swaps; subscribe to liquidity rooms separately to show both kinds of activity.
Add wallet identity to live events
Append:enriched to any liquidity room. The same suffix works on transaction, wallet, and whale/KOL rooms:
identity. Unknown wallets return null. An incomplete lookup adds identityStatus: "partial"; that notification does not receive a later identity correction.
Enriched notifications can arrive later or in a different order. Identity reflects current, cached labels, not labels at the event’s historical time. Token rooms use the requested token’s identity context; pool and wallet liquidity rooms use the first non-quote token, or the first token if both are quote tokens.
Read a liquidity event
The following is an illustrative payload. WebSocket messages wrap these events in{ "type": "message", "room": "...", "data": [...] }; REST returns them in trades.
typedistinguishesadd_liquidityandremove_liquidity. A rebalance can produce a separate removal and addition.poolis a single pool address.walletis the owner or authority identified by the instruction, which can be a delegate or program-derived address.tokens[]contains the participating mints. One-sided operations can have one entry; zero amounts are omitted.amountis an exact decimal string;amountRawis an integer string. Keep them as strings, or use decimal arithmetic andBigInt, to preserve precision.timeis Unix milliseconds.slotidentifies the Solana slot.amountBasis: "transfer"means gross token transfers across the pool vault, before Token-2022 withholding. It does not promise the net amount credited to a recipient.amountBasis: "principal"separates liquidity principal from fees or internal reallocations. Raydium CLMM removals can also includefeeAmountRawandtransferredAmountRawon each token.
Multiple actions can share a transaction signature, pool, and wallet. Do not collapse a feed to one event per signature. Internal event IDs are not exposed; use the returned cursor for REST pagination.