The pool is a constant-product AMM: token reserve x and stablecoin reserve y satisfy x·y = k, so price P = y/x and a swap of size Δx moves price along that curve (larger swaps against a shallow pool cause more slippage). The top-left panel plots this hyperbola directly, with a marker at the pool's current (x, y).
x · y = k
P = y / x
Δy_out = y − k / (x + Δx_in) (price impact of a sell)
A classic rug pull has two stages, both reproduced here when you press "Simulate": (1) the deployer, holding most of the LP tokens, withdraws their share — both reserves shrink by the same fraction, so price barely moves but depth collapses (the curve point slides down toward the origin along the same k); (2) the deployer then dumps their large personal token balance into the now-thin pool, and because slippage scales with 1/depth, the price crashes in a single swap (the point slides far down the same hyperbola).
The detector combines three real-world heuristics into one 0–100 score, updated every frame:
score = 0.40·concentration
+ 0.35·(unlocked ? 100 : 0)
+ 0.25·clamp(outflow_velocity × 6, 0, 100)
- Concentration — the larger the top wallet's share of supply (shown as the red wedge in the rotatable holder ring), the more damage one exit can do.
- Liquidity lock — locked LP tokens (time-locked in a contract) cannot be withdrawn at all, which is why locking neutralizes most of the score even during a triggered attempt.
- Outflow velocity — how fast reserves are draining right now, plotted live in the bottom-right sparkline; a sudden spike is the strongest live signal and is exactly what dashboards like this flag before the crash finishes.
When the score crosses your detection threshold, the panel raises an alarm — the same principle behind on-chain monitoring tools that watch liquidity-lock status and reserve deltas to warn holders in real time, before the trade that would drain their funds.