Lender Opportunities
Lender opportunities represent the supply side of Gearbox — you deposit tokens into a Pool, receive yield-bearing Diesel Tokens in return, and earn passive yield as borrowers pay interest.
What They Represent
When you enter a lender opportunity, you are depositing into an ERC-4626 Pool. The Pool issues Diesel Tokens (e.g., dUSDC, dWETH) whose exchange rate appreciates over time as interest accrues from borrowers. No active management is required.
Sub-Types
| Sub-Type | Description | Status |
|---|---|---|
pool | Standard LP in an ERC-4626 Pool — deposit, earn yield, withdraw anytime | Available |
intent | Limit-order style LP with custom terms (rate, duration, collateral preferences) | Future |
Discovering Lender Opportunities
Use either the opportunities namespace for unified search or the pools namespace for direct queries:
TypeScript
// Via unified search const lenderOpps = await sdk.opportunities.search({ type: "pool" }); // Via pools namespace directly const pools = await sdk.pools.list();
Key Fields
| Field | Description |
|---|---|
depositToken | The token you deposit (USDC, WETH, etc.) |
headlineApy | Current supply APY — what lenders earn |
capacity | Available liquidity remaining in the Pool |
access | Access control — permissionless or gated |
utilizationRate | Current Pool utilization (higher = more yield, less exit liquidity) |
dieselToken | The yield-bearing receipt token you receive |
Filtering
You can filter lender opportunities by asset class, chain, and minimum APY:
TypeScript
// All USDC lender opportunities with APY > 3% const usdcOpps = await sdk.opportunities.search({ type: "pool", depositToken: "USDC", minApy: 3, }); // Stablecoin opportunities on Arbitrum const arbStables = await sdk.opportunities.search({ type: "pool", chainId: 42161, assetClass: "stablecoin", });
Example: List High-Yield USDC Pools
TypeScript
import { GearboxSDK } from "@gearbox-protocol/sdk/official"; const sdk = new GearboxSDK(); await sdk.loadState({ mode: "lazy" }); const opps = await sdk.opportunities.search({ type: "pool", depositToken: "USDC", minApy: 3, }); for (const opp of opps) { console.log( `${opp.id} | APY: ${opp.headlineApy.toFixed(2)}% | Capacity: ${opp.capacity}` ); }
Next Steps
- Pool Operations — how to actually deposit and withdraw
- Interest Rates & Quotas — how supply APY is calculated
- Strategy Opportunities — the borrower side