Skip to main content
Load LP activity with the trade-history API, then subscribe to a liquidity room for live additions and removals. Keep token amounts as strings and reconcile live events with confirmed history.

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 accept events and enrich. Choose the scope you need:
  • events=trades is the default: buys and sells only.
  • events=all returns swaps, liquidity additions, and liquidity removals in one chronological feed.
  • events=liquidity returns only add_liquidity and remove_liquidity events.
  • enrich=identity adds current wallet identity to each returned row, including available KOL profiles, tags, trading platforms, developer/pool labels, and SNS names. Unknown wallets return identity: null.
Every mode returns a 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

Use limit 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.
The cursor preserves multiple actions at the same timestamp. Do not replace it with the last event’s time or reuse it after changing filters. Default trades-only requests retain their timestamp cursor; opt-in feeds also accept a numeric timestamp as an exclusive initial boundary. 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 to wss://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.
Replace the placeholders with Solana addresses. Join and leave use the same protocol as other Datastream rooms:

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.
See the Datastream protocol guide for authentication errors, heartbeat handling, reconnecting, and resubscribing. Existing 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:
With enrichment, events include 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.
  • type distinguishes add_liquidity and remove_liquidity. A rebalance can produce a separate removal and addition.
  • pool is a single pool address. wallet is 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.
  • amount is an exact decimal string; amountRaw is an integer string. Keep them as strings, or use decimal arithmetic and BigInt, to preserve precision.
  • time is Unix milliseconds. slot identifies 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 include feeAmountRaw and transferredAmountRaw on 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.

Live events and confirmed history

Live liquidity events are provisional at processed commitment. REST history contains confirmed/finalized activity using canonical block time, so its timestamp can differ from the live event. Provisional activity can disappear on a fork, and there is no rollback notification. Overlapping subscriptions deliver activity through each matching room. A two-token action can appear in both token rooms and both token history feeds. Subscribe to the narrowest scope you need, and use REST history to reconcile your display after reconnecting.

Supported liquidity activity

Supported instruction families include Raydium AMM v4, CPMM and CLMM; Orca Whirlpool; Pump AMM; Meteora DAMM v1/v2 and DLMM; Liquid Swap; and Futarchy. Coverage depends on the instruction and available on-chain data, rather than every funding action on every DEX. Standalone fee/reward claims, LP token minting/burning, rent, and unrelated transfers are excluded. Bonding-curve swaps remain trades. Liquidity activity does not contribute to swap volume, price candles, or swap PnL.

API reference