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-Type | Description | Status |
|---|---|---|
strategy | Leveraged position via Credit Account + adapters | Available |
intent_strategy | P2P leveraged position with custom borrow terms | Future |
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
| Field | Description |
|---|---|
depositToken | The collateral token you deposit (ETH, USDC, etc.) |
targetToken | The token the strategy targets for yield (stETH, yvUSDC, etc.) |
headlineApy | Net yield after borrow costs — what the borrower actually earns |
leverageRange | Min and max leverage available (e.g., 2x–10x) |
adapters | DeFi protocols available within this strategy |
borrowRate | Current cost of borrowing from the underlying Pool |
capacity | Remaining 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
- Positions (Strategies) — how to open, adjust, and close positions
- Multicall System — composable operations within Credit Accounts
- Lender Opportunities — the supply side