Skip to main content

getApyPerStrategy

Get global APY by strategy, by number of days and for a specific chain.

Signature

getAPYPerStrategy(
crossChain?: boolean,
days?: number,
strategy?: "conservative" | "aggressive",
chainId?: number,
tokenSymbol?: "USDC" | "WETH"
): Promise<APYPerStrategyResponse>

Parameters

ParameterTypeRequiredDescription
crossChainbooleanIf true, returns APY for cross-chain strategies; if false, single-chain (default: false)
daysnumberPeriod over which APY is calculated: 7, 15, 30, or 60 (default: 7)
strategystringStrategy risk profile: "conservative" or "aggressive" (default: "conservative")
chainIdnumberFilter by specific chain ID (e.g., 8453 for Base)
tokenSymbolstringFilter by token: "USDC" or "WETH"

Returns

Global APY by strategy, for the given time period and strategy configuration.

Return Type

interface APYPerStrategyResponse {
success: boolean;
count: number;
data: APYPerStrategy[];
}

interface APYPerStrategy {
id: string;
timestamp: string;
amount: number;
fee_threshold: number;
days: number;
chain_id: number;
is_cross_chain: boolean;
average_apy: number;
average_apy_with_rzfi: number;
total_rebalances: number;
created_at: string;
strategy: string;
token_symbol?: string;
average_apy_with_fee: number;
average_apy_with_rzfi_with_fee: number;
average_apy_without_fee?: number;
average_apy_with_rzfi_without_fee?: number;
events_average_apy?: Record<string, number>;
}

Example

// Get 7-day conservative APY for USDC
const usdcApy = await sdk.getAPYPerStrategy(false, 7, "conservative", undefined, "USDC");
console.log("USDC APY:", usdcApy.data);

// Get 30-day aggressive APY for WETH on Base
const wethApy = await sdk.getAPYPerStrategy(false, 30, "aggressive", 8453, "WETH");
console.log("WETH APY on Base:", wethApy.data);

// Compare strategies
const conservative = await sdk.getAPYPerStrategy(false, 30, "conservative");
const aggressive = await sdk.getAPYPerStrategy(false, 30, "aggressive");
console.log("Conservative 30d APY:", conservative.data[0]?.average_apy);
console.log("Aggressive 30d APY:", aggressive.data[0]?.average_apy);