DocumentationOpen App

Strategy Opportunities

Strategy opportunities represent the borrower side of Gearbox — you borrow from a Pool, deploy capital into DeFi protocols via a Credit Account, and earn leveraged yield minus borrow costs.

What They Represent

When you enter a strategy opportunity, you open a Credit Account, deposit collateral, borrow pool liquidity, and deploy the combined capital through whitelisted DeFi adapters (Uniswap, Curve, Lido, Aave, etc.). The Credit Manager enforces solvency after every operation.

Sub-Types

Sub-TypeDescriptionStatus
strategyLeveraged position via Credit Account + adaptersAvailable
intent_strategyP2P leveraged position with custom borrow termsFuture

Discovering Strategy Opportunities

Use either the opportunities namespace for unified search or the strategies namespace for direct queries:

TypeScript
// Via unified search const strategyOpps = await sdk.opportunities.search({ type: "strategy" }); // Via strategies namespace directly const strategies = await sdk.strategies.list();

Key Fields

FieldDescription
depositTokenThe collateral token you deposit (ETH, USDC, etc.)
targetTokenThe token the strategy targets for yield (stETH, yvUSDC, etc.)
headlineApyNet yield after borrow costs — what the borrower actually earns
leverageRangeMin and max leverage available (e.g., 2x–10x)
adaptersDeFi protocols available within this strategy
borrowRateCurrent cost of borrowing from the underlying Pool
capacityRemaining borrowable liquidity

Filtering

You can filter strategy opportunities by asset class, chain, leverage, and minimum APY:

TypeScript
// All ETH strategies with APY > 10% const ethStrats = await sdk.opportunities.search({ type: "strategy", depositToken: "ETH", minApy: 10, }); // High-leverage strategies on mainnet const leveraged = await sdk.opportunities.search({ type: "strategy", chainId: 1, minLeverage: 5, });

Example: List High-Yield ETH Strategies

TypeScript
import { GearboxSDK } from "@gearbox-protocol/sdk/official"; const sdk = new GearboxSDK(); await sdk.loadState({ mode: "lazy" }); const opps = await sdk.opportunities.search({ type: "strategy", depositToken: "ETH", minApy: 10, }); for (const opp of opps) { console.log( `${opp.id} | APY: ${opp.headlineApy.toFixed(2)}% | Leverage: ${opp.leverageRange.max}x` ); }

Next Steps