Message Types
The server sends messages with atype discriminator. All SDKs parse these into typed objects.
hello_ok
Sent once immediately after the WebSocket opens. Contains the session ID and tier limits.
pong
Response to a client ping. Use for latency measurement.
error
Server side error notification. Check the code to determine severity.
balance_update
Emitted when a token balance changes in a tracked wallet (new arrivals, transfers, sells).
position_opened
A new position has been detected and tracking has begun.
position_closed
A position has been removed from tracking.
exit_signal_with_tx
The most important event. Sent when a position meets your exit criteria. Includes a pre built unsigned transaction ready for signing.
mirror_buy_signal
Sent when a watched wallet opens a position on a supported market and the stream builds an unsigned buy transaction for your wallet. Sign and submit this transaction to mirror the trade.
mirror_buy_failed
Sent when a mirror buy cannot be executed. Common reasons include insufficient balance, no route found, or pool liquidity below the minimum threshold.
mirror_wallet_auto_disabled
Sent when a watched wallet is automatically disabled by the consecutive loss breaker. After receiving this event the stream will no longer mirror trades from this wallet until you re-enable it.
pnl_update
Periodic profit and loss snapshot for a tracked position.
pnl_update messages are delivered at the interval defined by limits.pnl_flush_ms. When using lane splitting, they flow through the low priority channel.
liquidity_snapshot
Tier 1+ only. Liquidity snapshots are delivered to Professional and Advanced tier subscribers. Free tier sessions receive
pnl_update messages only.pnl_update at the same flush interval. Use this data to understand how much of a position can be sold at a given slippage threshold and whether pool liquidity is growing, stable, or draining. See the announcement blog post for background and examples.
SlippageBandMsg
Each entry in the bands array:
Interpreting slippage bands
Slippage bands answer the question: “How much can I sell without exceeding X% slippage?” For example, if the 500 bps band showsmax_tokens: 3000000 and coverage_pct: 60.0, you can sell up to 3,000,000 tokens (60% of your position) with no more than 5% price impact.
Use session.getSlippageBands(positionId) or session.getMaxSellAtSlippage(positionId, slippageBps) in any SDK to query the latest snapshot.
Liquidity trend
Theliquidity_trend field tracks how pool liquidity is changing over recent observations:
"growing": Liquidity is increasing. Sell conditions are improving."stable": Liquidity is steady. No significant change."draining": Liquidity is decreasing. Consider exiting sooner if selling a large position.
session.getLiquidityTrend(positionId) in any SDK to read the trend.

