Skip to content

Commit 0e89847

Browse files
Jpatchingclaude
andcommitted
Fix alive detection for Pump.fun bonding curve tokens
Tokens on Pump.fun's bonding curve have $0 liquidity on DexScreener but still actively trade. Now a token is alive if it has liquidity OR volume OR was created <24h ago, instead of requiring liquidity. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent db2184b commit 0e89847

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

backend/src/services/dexscreener.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,16 @@ export async function checkTokenStatus(mintAddress: string): Promise<TokenStatus
3333
const totalVolume24h = pairs.reduce((sum, p) => sum + (p.volume?.h24 || 0), 0);
3434
const bestPair = pairs[0];
3535

36-
// A token is alive if it has meaningful liquidity AND recent activity
36+
// A token is alive if it has meaningful liquidity OR active trading volume
37+
// Pump.fun bonding curve tokens have $0 liquidity on DexScreener but
38+
// still trade actively — volume alone proves the token is alive
3739
const ageHours = bestPair.pairCreatedAt
3840
? (Date.now() - bestPair.pairCreatedAt) / (1000 * 60 * 60)
3941
: Infinity;
40-
const isAlive = totalLiquidity >= ALIVE_LIQUIDITY_THRESHOLD &&
41-
(totalVolume24h > 0 || ageHours < 24);
42+
const hasLiquidity = totalLiquidity >= ALIVE_LIQUIDITY_THRESHOLD;
43+
const hasVolume = totalVolume24h > 0;
44+
const isNew = ageHours < 24;
45+
const isAlive = hasLiquidity || hasVolume || isNew;
4246

4347
return {
4448
alive: isAlive,
@@ -112,8 +116,10 @@ export async function bulkCheckTokens(
112116
const ageHours = bestPair.pairCreatedAt
113117
? (Date.now() - bestPair.pairCreatedAt) / (1000 * 60 * 60)
114118
: Infinity;
115-
const isAlive = totalLiquidity >= ALIVE_LIQUIDITY_THRESHOLD &&
116-
(totalVolume24h > 0 || ageHours < 24);
119+
const hasLiquidity = totalLiquidity >= ALIVE_LIQUIDITY_THRESHOLD;
120+
const hasVolume = totalVolume24h > 0;
121+
const isNew = ageHours < 24;
122+
const isAlive = hasLiquidity || hasVolume || isNew;
117123

118124
const status = {
119125
alive: isAlive,

0 commit comments

Comments
 (0)