getAggressivePoolStatus
Get aggressive pool status with derived health, risk level, APY trend, and yield consistency indicators.
Signature
getAggressivePoolStatus(chainId?: number): Promise<PoolStatus[]>
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chainId | number | ❌ | Optional chain ID filter (Base, Arbitrum, Plasma, Sonic) |
Returns
List of aggressive/degen pools with computed status indicators for quick assessment.
Return Type
interface PoolStatus {
poolName: string; // Name of the lending pool
protocolName: string; // Protocol name (e.g., Morpho, Euler, Harvest)
chainId: number; // Blockchain ID where the pool is deployed
healthScore: string; // Overall health: "healthy", "moderate", "risky"
riskLevel: string; // Risk assessment: "low", "medium", "high"
apyTrend: string; // Yield direction: "rising", "falling", "stable"
yieldConsistency: string; // Yield volatility: "consistent", "mixed", "volatile"
liquidityDepth: string; // Liquidity tier: "deep", "moderate", "shallow"
avgCombinedApy7d: number | null; // Average combined APY over 7 days
}
Field Descriptions
- poolName: The name of the lending pool or vault
- protocolName: The DeFi protocol hosting the pool (typically newer or higher-risk protocols)
- chainId: The blockchain network ID (8453 = Base, 42161 = Arbitrum, 9745 = Plasma, 146 = Sonic)
- healthScore: Aggregate health indicator based on stability metrics and liquidity
"healthy": All or most stability indicators are positive, good liquidity depth"moderate": Mixed stability indicators or moderate liquidity (common in aggressive strategies)"risky": Multiple negative stability indicators or shallow liquidity- Calculation: Combines
tvlStability + apyStability + tvlApyCombinedRisk + liquidityDepth bonus. Score ≥3 = healthy, ≥1.5 = moderate, <1.5 = risky - Note: Aggressive pools may naturally have "moderate" or "risky" health scores due to higher volatility
- riskLevel: Count of negative risk signals
"low": 0 risk signals (rare in aggressive strategies)"medium": 1-2 risk signals present (common in aggressive pools)"high": 3+ risk signals detected (proceed with caution)- Risk signals include: Unstable TVL, unstable APY, unstable combined risk, shallow liquidity, >90% utilization
- Note: "Medium" risk in aggressive pools is typical and may still be acceptable for yield-seeking users
- apyTrend: Direction of yield movement over time
"rising": 7-day APY is >10% higher than 30-day APY (momentum building, possible new incentives)"falling": 7-day APY is >10% lower than 30-day APY (incentives ending, demand decreasing)"stable": APY change between 7d and 30d is within ±10%- Use case: Rising trends may indicate good entry points; falling trends may signal time to exit
- yieldConsistency: Volatility assessment of yield over time
"consistent": Spread between 7d and 30d APY is ≤10% (rare in aggressive strategies)"mixed": Spread between 7d and 30d APY is 10-30% (typical for aggressive pools)"volatile": Spread between 7d and 30d APY is >30% (high variability, common with incentive programs)- Note: Aggressive pools often have "mixed" or "volatile" consistency due to changing incentive structures
- liquidityDepth: Liquidity tier - "deep" (>$10M), "moderate" ($1M-$10M), "shallow" (<$1M)
- Shallow liquidity in aggressive pools increases slippage risk for large deposits
- avgCombinedApy7d: Current 7-day average yield (typically higher than conservative pools)
Example
// Get aggressive pool status for Arbitrum
const arbAggressiveStatus = await sdk.getAggressivePoolStatus(42161);
// Sort by APY to find highest yields
const sortedByApy = arbAggressiveStatus
.filter((pool) => pool.avgCombinedApy7d !== null)
.sort((a, b) => (b.avgCombinedApy7d || 0) - (a.avgCombinedApy7d || 0));
console.log("Top Aggressive Pools by APY on Arbitrum:");
sortedByApy.slice(0, 5).forEach((pool) => {
console.log(`\n${pool.poolName} (${pool.protocolName})`);
console.log(` APY: ${pool.avgCombinedApy7d?.toFixed(2)}% | Trend: ${pool.apyTrend}`);
console.log(` Health: ${pool.healthScore} | Risk: ${pool.riskLevel}`);
console.log(` Liquidity: ${pool.liquidityDepth} | Consistency: ${pool.yieldConsistency}`);
});
// Find aggressive pools with rising yields and acceptable risk
const risingOpportunities = arbAggressiveStatus.filter(
(pool) =>
pool.apyTrend === "rising" &&
pool.riskLevel !== "high" &&
pool.liquidityDepth !== "shallow"
);
console.log(`\nFound ${risingOpportunities.length} rising opportunities with manageable risk`);
// Get all aggressive pool status across chains
const allAggressiveStatus = await sdk.getAggressivePoolStatus();
// Risk distribution analysis
const riskDistribution = {
low: allAggressiveStatus.filter(p => p.riskLevel === "low").length,
medium: allAggressiveStatus.filter(p => p.riskLevel === "medium").length,
high: allAggressiveStatus.filter(p => p.riskLevel === "high").length,
};
console.log("\nRisk Distribution:", riskDistribution);
Notes
- This method internally calls
getActiveAggressiveOppsRisk()and derives status indicators - Aggressive pools typically have higher APYs but also higher risk profiles compared to conservative pools
- "Medium" risk and "moderate" health scores are common and may still be acceptable depending on risk tolerance
- Always consider liquidity depth for position sizing - shallow liquidity limits withdrawal capacity
- Volatile yield consistency is expected in aggressive strategies with changing incentive programs
- Compare
apyTrendacross multiple pools to identify the best entry timing - High utilization (>90%) in aggressive pools may indicate withdrawal delays during market stress