Skip to main content

getActiveConservativeOppsRisk

Get active conservative opportunities (status = "live") with risk and utilization data.

Signature

getActiveConservativeOppsRisk(chainId?: number): Promise<ConservativeOpportunityRisk[]>

Parameters

ParameterTypeRequiredDescription
chainIdnumberOptional 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 chainId is not provided, returns opportunities from all supported chains
  • null values in stability fields indicate data is not available for that metric