Back to blog
product
exit-intelligence
sdk

Introducing Liquidity Snapshots, Slippage Bands, and SDK 0.3

Real time liquidity intelligence powers smarter multi leg sells. Know exactly how much you can move at each slippage tier before you sign a single transaction.

LaserSell Team··6 min read
Share

TL;DR: The Exit Intelligence Stream now sends real time slippage bands and liquidity trend data for every position. You can see exactly how many tokens you can sell at 1%, 2%, 5%, or 10% price impact, and get a "draining" warning when pool depth is shrinking. SDK 0.3 adds buildPartialSellTx(), multi wallet support, and helper methods to query it all. Available now on Professional and Advanced tiers.


Selling a token is easy. Selling at the right size without destroying your own price? That takes information most traders do not have.

Today we are shipping liquidity snapshots: a real time view of pool depth, slippage bands, and liquidity trend data delivered directly through the Exit Intelligence Stream. Available now for Professional and Advanced tier subscribers, and included in SDK 0.3 across all four languages.

The problem: selling blind

When you hold a large position in a low liquidity pool, a full sell can move the price 20%, 30%, or more against you. Limit orders do not help because they sit passively and get skipped when price gaps past them. And checking pool state manually is slow, stale by the time you act, and requires deep knowledge of each DEX's math.

Until now, the only way to understand slippage before selling was to simulate the trade yourself, on chain, for every position, on every price tick. That is exactly what LaserSell now does for you.

What liquidity snapshots deliver

Every PnL update cycle, the Exit Intelligence Stream now sends a liquidity_snapshot message alongside each pnl_update for Tier 1 and Tier 2 sessions. Each snapshot includes:

Slippage bands answer the question: "How much can I sell without exceeding X% price impact?"

json
{
  "type": "liquidity_snapshot",
  "position_id": 1,
  "bands": [
    { "slippage_bps": 100, "max_tokens": 500000, "coverage_pct": 10.0 },
    { "slippage_bps": 200, "max_tokens": 1200000, "coverage_pct": 24.0 },
    { "slippage_bps": 500, "max_tokens": 3000000, "coverage_pct": 60.0 },
    { "slippage_bps": 1000, "max_tokens": 5000000, "coverage_pct": 100.0 }
  ],
  "liquidity_trend": "stable",
  "server_time_ms": 1706000003000
}

In this example, you can sell 60% of your position (3,000,000 tokens) with no more than 5% slippage. Selling the full position requires accepting up to 10%.

Reading coverage_pct: this field tells you what fraction of your total position fits within each slippage band.

  • 100% at 1% = Deep liquidity. You can exit the full position with minimal impact.
  • 10% at 2% = Thin pool. You would need to split into many smaller sells to stay within tolerance.
  • Less than 50% at 10% = Very illiquid. Consider exiting what you can before conditions worsen.

Example: 5,000,000 tokens worth 50 SOL

StrategySlippageYou receive
Sell everything at once~25%37.5 SOL
Sell 60% at 5%, rest at 10%Staged~46 SOL

+8.5 SOL saved on a single exit, just by knowing the pool depth before you execute.

Liquidity trend tracks how pool depth 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 you are holding a large position.

How this changes your strategy

Size exits intelligently

Instead of dumping an entire position and eating 25% slippage, query the 5% band and sell exactly that amount:

ts
const maxTokens = session.getMaxSellAtSlippage(positionId, 500);
if (maxTokens !== undefined) {
  const tx = await client.buildPartialSellTx(handle, maxTokens, {
    slippageBps: 500,
  });
  // sign and submit...
}

React to liquidity changes

If the trend shifts from "stable" to "draining," you know the window to exit at a good price is closing. Your application can react immediately instead of discovering the problem after the trade executes:

ts
const trend = session.getLiquidityTrend(positionId);
if (trend === "draining") {
  // Liquidity is decreasing - possible rug pull or whale dump incoming
  // Exit immediately before slippage gets worse
  const maxTokens = session.getMaxSellAtSlippage(positionId, 1000);
  if (maxTokens !== undefined) {
    const tx = await client.buildPartialSellTx(handle, maxTokens, {
      slippageBps: 1000, // Accept 10% to get out now
    });
    // sign and submit...
  }
}

This is the "warning system" side of the feature. Instead of holding and hoping while liquidity providers pull out, your strategy sees "draining" in real time and starts selling what it can at the best available price. By the time a manual trader notices slippage has doubled, your application has already locked in gains.

Build smarter applications

Slippage bands update in real time. An application can continuously monitor the coverage percentage at its target slippage and trigger a sell the moment enough liquidity appears to exit the full position cleanly.

Before and after

Without liquidity snapshotsWith liquidity snapshots
Sell sizingGuess, or sell everything and hopeQuery exact token amount per slippage band
Slippage awarenessDiscover after the trade executesKnow before you sign the transaction
Liquidity shiftsInvisible until price impact spikes"draining" warning in real time
Partial exitsManual math with pool state RPCsOne call to buildPartialSellTx()
Multi walletOne session per walletUp to 200 wallets in a single session

SDK 0.3: what else is new

This release includes several additions beyond liquidity snapshots:

Partial sell helper

All four SDKs now include buildPartialSellTx() (or the language equivalent). Pass a PositionHandle from any stream event, the number of tokens to sell, slippage tolerance, and output asset. No need to manually extract mint, wallet, or token account fields.

Multi wallet support

Stream sessions now accept multiple wallet public keys in the configure message. Monitor up to 5 wallets on the Professional tier or up to 200 wallets on the Advanced tier, all in a single session. Add or remove wallets mid session with updateWallets() without reconnecting.

Liquidity query methods

StreamSession caches the latest liquidity snapshot per position. Three new methods across all SDKs:

MethodReturns
getSlippageBands(positionId)Array of slippage bands with max tokens and coverage percentage
getMaxSellAtSlippage(positionId, bps)Maximum tokens sellable at the given slippage threshold
getLiquidityTrend(positionId)"growing", "stable", or "draining"

Availability

Liquidity snapshots are available now for Professional ($49/mo) and Advanced Exit Engine ($149/mo) subscribers. Free tier sessions continue to receive PnL updates and exit signals as before.

SDK 0.3 is published on npm, PyPI, and crates.io. Go users can update with go get.

bash
npm install @lasersell/lasersell-sdk@0.3.0
pip install lasersell-sdk==0.3.0
cargo add lasersell-sdk@0.3.0
go get github.com/lasersell/lasersell-sdk/go@latest

If you have questions or want to share what you are building, reach out on X @lasersellhq or join the Discord.


Full documentation: Liquidity Snapshots · Rate Limits and Tiers · SDK Guides

Share