Skip to main content

Get Quote

Returns a deposit quote with estimated output, route options for cross-chain deposits, and approval details.

Request Body

Example Request

Response

Quote Types

Multi-Asset Vaults & Smart Routing

Some vaults accept several deposit tokens directly (e.g. Lido Earn USD takes both USDT and USDC; Veda Liquid BTC takes WBTC + cbBTC + LBTC). The accepted_assets array on the vault record lists every supported token. When choosing the destination/deposit token, the API picks the cheapest path automatically:
  1. Same chain + from_token matches an accepted asset → direct (no swap)
  2. Cross chain + from_token’s symbol matches an accepted asset on dest → bridge same-symbol (e.g. Base USDC → Eth USDC for a USDT/USDC vault — no asset swap during bridge)
  3. Otherwise → fall back to the vault’s primary asset
You don’t need to pass anything extra — just submit from_token as the user’s source token and the API routes accordingly.

Estimate Fields

Route Options

For cross-chain deposits, route_options lists available bridge routes. Each route shows the bridge name, logo, output amount, estimated time, gas cost, and tags (RECOMMENDED, CHEAPEST, FASTEST). Pass the selected route’s bridge key as preferred_bridge when building the transaction.

Build Transaction

Build a ready-to-send transaction for the deposit.

Request Body

Example Request

Response (Single-Step)

For direct deposits and Morpho-compatible cross-chain deposits, the build returns a single transaction that bridges + deposits atomically via LiFi Composer. On cross-chain deposits the to address is LiFi’s Diamond; LiFi then calls router.depositFor(...) on the destination chain via its bridge-specific receiver (Executor / ReceiverAcrossV4 / ReceiverStargateV2 / etc.). V3.1.1 accepts calls from any address, so new LiFi receivers work without a router upgrade. On same-chain deposits the to address is the Yieldo router directly. The calldata currently uses the 7-arg depositFor form (compat shim) with minSharesOut = 0. A future release will switch to the 8-arg form with a computed minSharesOut for on-chain slippage protection.

Response (Two-Step Cross-Chain)

For vault types that LiFi Composer doesn’t natively understand (Midas, Veda, Custom, IPOR, Lido), the response has two_step: true. The frontend must:
  1. Execute transaction_request — LiFi bridges tokens to the user’s wallet on the destination chain
  2. Poll /v1/status until bridge is DONE
  3. Execute deposit_tx.transaction_request (preceded by deposit_tx.approval if present) — a same-chain deposit on the destination
This trades one extra click for near-zero revert risk on protocols whose deposit interfaces aren’t composable with the bridge.

Transaction Request Fields

Top-Level Response Fields

Errors