product updates: march 9, 2026
impossible paper trade entries are gone, the scan pipeline now pulls from more sources than ever, and a broken API that was silently returning zero tokens every scan has been removed. here's what shipped.
---
PumpAMM tokens blocked from GeckoTerminal
the most urgent fix in this batch.
we were seeing entry signals on Sienna where the recorded entry price was wildly different from where the token was actually trading at that time. a token showing $13K market cap at entry, for example, while the chart clearly showed the price was already at $33K+. these were impossible entries — the kind that pollute paper trading data and would be catastrophic in live mode.
the root cause: GeckoTerminal was returning pool data for PumpAMM tokens — tokens that have already graduated from the pump.fun bonding curve and are now trading on pump's AMM. these pools have completely different liquidity mechanics from bonding-curve tokens, and their pool-level price data doesn't reflect what you'd actually pay to buy them through Jupiter.
the fix is a hard filter in the GeckoTerminal pool-to-token converter. any pool with a dex ID of pumpswap or pump_amm now returns null immediately and is excluded from the scan entirely. only PumpV1 bonding-curve tokens pass through. the PUMP_DEX_IDS set was also cleaned up to remove those IDs since they're now rejected before they reach the classification logic.
this is a quality-of-data fix more than a trading logic fix. the scanner should only see tokens with reliable, actionable pricing. graduated AMM tokens belong to a different scanning strategy — and their data was poisoning the feed for tokens that don't.
---
full scan source audit
we did a live test of every API endpoint in the scanner to see what was actually working. results across all 11 sources:
| source | status | notes |
|---|---|---|
| DexScreener | working | always-on, no key needed |
| GeckoTerminal new + trending | working | free, 20 pools each |
| bonding curve tokens | working | 100 pre-graduation tokens |
| graduated tokens | working | 100 post-graduation tokens |
| trending tokens | working | 50 high-volume Solana tokens |
| Birdeye trending + new listings | working | 50+50 tokens |
| Helius DAS | working | up to 50 tokens |
| PumpPortal WebSocket | working | real-time, sub-second |
| PumpFun Direct | working | 7 endpoints, free |
| Jupiter Tokens API | broken | now returns 401 — requires auth |
the surprise: most sources were working fine. the problem was that bonding, graduated, and trending discovery sources were only active in one specific scan mode. in the standard multi-source mode that most agents run, they were never called. same for PumpFun Direct — fully functional, just never included in the main pipeline.
---
bonding, graduated, and trending sources added to multi-source
with the audit done, the fix was straightforward: add the idle-but-working endpoints to the multi-source pipeline.
every scan now fires these in parallel alongside the existing sources:
the deduplication step merges everything by token address and keeps the highest-quality data for any token that appears in multiple sources. there's no double-counting.
---
pumpfun direct added to multi-source
PumpFun Direct queries pump.fun's API directly across seven endpoints: king-of-the-hill, currently live tokens, recently traded (bonding), recently traded (graduated), newest launches, and top market cap for both bonding and graduated. no API key, free, and it returns fresh data with confirmed last_trade_timestamp so stale or abandoned tokens are automatically excluded.
it was already integrated in a secondary scan path. it's now in the main pipeline.
---
jupiter tokens removed
Jupiter's /tokens/v2/recent and /tokens/v2?tags=pump endpoints now return 401 Unauthorized. the endpoints require authentication that we don't have a key for. the scanner was silently calling these endpoints every scan cycle, receiving a 401, and logging a warning before returning zero tokens — contributing nothing except API noise.
both calls are now gated behind a JUPITER_API_KEY env check. if the key isn't set, neither request is made. the warnings are gone, and scan performance is fractionally improved.
if Jupiter releases a public API key or restores open access, re-enabling is a single env var addition.
---
net effect on scan coverage
the multi-source pipeline was already good. with these additions, each scan cycle now queries:
rough addition: ~300–400 more token candidates per scan cycle. the filter and scoring pipeline sorts the good ones from the noise.
---
what's next
priceChange1h for Claudia's final-stretch mode to prevent entering tokens already up 150%+ in the last hourstay sharp. parasol keeps you covered.