Prerequisites:
Protocol-Specific Approach
Use this when you want to work with a specific yield protocol. Request Transaction Data Fetch specific protocol information using:| Parameter | Description | Example |
|---|---|---|
| action | Type of operation | withdraw |
| amount | Amount in token’s smallest unit | 10000000 |
| wallet | Wallet that owns the position | 0x1234... |
| Parameter | Description | Example |
|---|---|---|
| fromChainId | Source chain ID (for cross-chain withdrawals) | 1 (Ethereum) |
| toTokenAddress | Destination token address (for cross-chain) | 0xA0b86991c... (USDC on ETH) |
| Parameter | Description | Example |
|---|---|---|
| output | Response format: bytecode (default), userOperation, fireblocks, or instructions (Solana) | fireblocks |
| accountId | Fireblocks vault account ID. Required when output=fireblocks | 12 |
crossChainQuoteId is populated when isCrossChain is true and can be used to track cross-chain transaction status.output=fireblocks and pass your vault accountId. The wallet parameter must be a smart wallet previously provisioned via POST /fireblocks-smart-account (see Fireblocks Integration).
transactionData.transactionRequest payload can be submitted directly to the Fireblocks Transactions API (POST /v1/transactions) — no further encoding required. The Earn Owner vault must be configured as the signer (see Fireblocks Integration). After the withdrawal completes, transfer funds out of the smart wallet to your Omnibus wallet or any other destination.
To let the system automatically select the best protocol, use
GET /yield/ to retrieve ranked recommendations, then pass
the chosen strategyId into the Protocol-Specific approach above.
See the API Reference for the full yield endpoint schema.
Executing the Transaction
Once you have the bytecode, you can execute it using your wallet provider:Next Steps
Check Positions
View your remaining positions
New Deposit
Make a new deposit
Protocol Info
Check protocol information