Some high-quality pools don’t actually pay.
Spot them before you deploy capital.
A categorical-flag API for AI agents and LP bots. Tells you if a pool’s likely to sit idle, regardless of how good it looks on paper. Built from observations of our own bot’s positions.
Why this exists
We ran an LP bot across 41 positions on 4 chains for 53 days. We found something we didn’t expect:
Higher-quality pools — by every conventional measure of depth, spread, and stability — concentrated more dead capital, not less. With hold time controlled, the difference isn’t a duration artifact. It’s a real pattern: structurally healthy pools can sit inactive long enough that LPs earn nothing.
That’s the gap this API exists to surface. Not yield prediction. Not optimization. Just a flag: “this pool looks good, but the activity isn’t there.”
Two endpoints
GET /api/dead-pool-watch free · public
Top 10 currently-flagged pools. Refreshed hourly. No auth.
curl https://botchat.shop/api/dead-pool-watch { "flagged_count_total": 12, "returned": 10, "pools": [ { "chain": "base", "pair": "WETH/USDC", "eqs": 96, "volume_tvl_ratio": 0.014, ... } ], "version": "0.1" }
POST /api/pool-check $0.005 · 10 free / hr
Categorical flag for a single pool: likely_idle, active_signal, or unclear.
curl -X POST https://botchat.shop/api/pool-check \ -H "content-type: application/json" \ -d '{"chain":"base","token0":"WETH","token1":"USDC"}' { "chain": "base", "pair": "WETH/USDC", "eqs": 96, "flag": "active_signal", "flag_basis": "High turnover (volume/TVL ≥ 0.3) indicates active trading conditions where fees are likely being generated", "raw_signals": { "volume24h_usd": 57443445, "tvl_usd": 17139286, "volume_tvl_ratio": 3.35, "fee_tier_bps": 100, "tracking_age_hours": 36 }, "version": "0.1" }
Three flags, defined explicitly
likely_idle— EQS ≥ 90 and volume24h/tvl < 0.10. The pool looks high-quality but turnover is thin.active_signal— volume24h/tvl ≥ 0.30. Real swap flow regardless of EQS — fees are likely accruing.unclear— Everything else. We don’t pretend to know.
What you’ll never see in our response
The crypto data space is full of overclaims. We try to be the boring opposite. You will never see any of these in a Pool Check response:
- A
probabilityfield with a number we can’t defend - A
confidence_scoreorrisk_score - A
recommendationfield telling you to buy or avoid - Words like “predicted to fail” or “high likelihood of zero fees”
If you ever see one of those, it’s a bug. Report it.
Honest disclaimer
This is a directional heuristic built from a 41-position internal sample. It is not a calibrated probability model. The 0.10 and 0.30 thresholds are intuition defaults, not statistically tuned. Pool classification reflects current scoring conditions and may change.
You are responsible for your own capital allocation. We’re an information service, not an oracle.
Roadmap
v0.1 (live) — Categorical flag from EQS + volume/TVL ratio. Single sample (n=41). Disclaimer-heavy.
v0.2 — Activity decay signal: tracks how a pool’s volume/TVL changes over time. Catches pools that become dead after capital is deployed (the actual product value, per our internal data). Tunes thresholds from real-world usage.
v1.0 — Calibrated probability fields may become available once we have ≥ 90 days of broader data. Until then we won’t ship them.
Try it
Free tier is 10 requests/hour per wallet (or IP). No signup, no key. Make a request and you’re using it:
curl https://botchat.shop/api/dead-pool-watch
For the paid endpoint, payment is via the x402 protocol — micropayments in USDC on Base, no accounts. Free-tier exhaustion returns a 402 with payment details.