getActiveConservativeOppsRisk
Get active conservative opportunities (status = "live") with risk and utilization data.
Signature
getActiveConservativeOppsRisk(chainId?: number): Promise<ConservativeOpportunityRisk[]>
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chainId | number | ❌ | Optional chain ID filter (Base, Arbitrum, Plasma, Sonic) |
Returns
List of active conservative opportunities with risk metrics and utilization data.
Return Type
interface ConservativeOpportunityRisk {
poolName: string; // Name of the lending pool
protocolName: string; // Protocol name (e.g., Aave, Morpho, Compound)
chainId: number; // Blockchain ID where the pool is deployed
liquidityDepth: string; // Liquidity tier: "deep" (>$10M), "moderate" ($1M-$10M), "shallow" (<$1M)
utilizationRate: number; // Percentage of TVL being utilized (0-100)
tvlStability: boolean | null; // Whether TVL has been stable over the measurement period
apyStability: boolean | null; // Whether APY has been stable over 30 days
tvlApyCombinedRisk: boolean | null; // Combined stability risk indicator (true = stable)
avgCombinedApy7d: number | null; // Average combined APY over 7 days
avgCombinedApy15d: number | null; // Average combined APY over 15 days
avgCombinedApy30d: number | null; // Average combined APY over 30 days
collateralSymbols: string[]; // Array of accepted collateral token symbols
}
Field Descriptions
- poolName: The name of the lending pool or vault
- protocolName: The DeFi protocol hosting the pool (e.g., Aave V3, Morpho, Compound V3)
- chainId: The blockchain network ID (8453 = Base, 42161 = Arbitrum, 9745 = Plasma, 146 = Sonic)
- liquidityDepth: Categorical liquidity assessment
"deep": Pool has >$10M available liquidity (low slippage risk)"moderate": Pool has $1M-$10M liquidity (moderate slippage risk)"shallow": Pool has <$1M liquidity (high slippage risk)
- utilizationRate: Percentage of total value locked (TVL) currently being borrowed/utilized. Higher rates may indicate limited liquidity for withdrawals.
- tvlStability: Boolean flag indicating whether the pool's TVL has remained stable (not experiencing rapid inflows/outflows that could indicate risk)
- apyStability: Boolean flag indicating whether APY has been stable over the past 30 days (true = consistent yield, false = volatile yield)
- tvlApyCombinedRisk: Combined risk indicator that considers both TVL and APY stability together
- avgCombinedApy7d: Rolling 7-day average of combined APY (includes base yield + incentives)
- avgCombinedApy15d: Rolling 15-day average of combined APY
- avgCombinedApy30d: Rolling 30-day average of combined APY (useful for comparing yield trends)
- collateralSymbols: List of token symbols accepted as collateral for borrowing against this pool
Example
// Get all conservative opportunities on Base chain
const baseOpps = await sdk.getActiveConservativeOppsRisk(8453);
baseOpps.forEach((opp) => {
console.log(`Pool: ${opp.poolName} on ${opp.protocolName}`);
console.log(` Liquidity Depth: ${opp.liquidityDepth}`);
console.log(` Utilization: ${opp.utilizationRate}%`);
console.log(` 7d APY: ${opp.avgCombinedApy7d?.toFixed(2)}%`);
console.log(` TVL Stable: ${opp.tvlStability}`);
console.log(` APY Stable: ${opp.apyStability}`);
console.log(` Collateral: ${opp.collateralSymbols.join(", ") || "None"}`);
});
// Get conservative opportunities across all chains
const allOpps = await sdk.getActiveConservativeOppsRisk();
Notes
- Only returns opportunities with
status = "live"(actively accepting deposits) - Utilization rate is calculated as:
(tvl - liquidity) / tvl * 100 - If
chainIdis not provided, returns opportunities from all supported chains nullvalues in stability fields indicate data is not available for that metric