Skip to main content
Withdrawals follow the same integration pattern as deposits. Use GET /quote or POST /advanced/routes with the user’s position token as fromToken and the desired output token as toToken.
Withdrawals are available for protocols that support the Withdraw action. Check the Supported Protocols reference for per-protocol capabilities.

How Withdrawals Work

If the protocol and market support withdraw via Composer, LI.FI returns a Composer-capable route.

Same-Chain Withdrawal

Withdraw from a protocol position into an underlying token on the same chain.

Cross-Chain Withdrawal

Withdraw on one chain and receive the output token on another chain in a single flow.
Cross-chain withdrawals require status polling via GET /status after the source-chain transaction confirms. See Cross-Chain Composer Patterns.

Execution Flow

The execution steps are identical to Composer deposits.
  1. Request a quote via /quote or /advanced/routes
  2. Set token allowance if approvalAddress is present and fromToken is an ERC-20
  3. Submit the transactionRequest
  4. Poll /status for cross-chain transfers

API Integration

Full walkthrough of the quote, allowance, execute, and status polling flow.

Protocols That Support Withdraw

The following protocols support withdrawals via Composer. Deposit-only protocols (Ethena, Kinetiq, Maple, Royco) must be withdrawn through their own interfaces.

Supported Protocols

Full protocol reference including deposit-only vs deposit + withdraw support.

Error Handling

Common issues specific to withdrawals: For full status and substatus values, see Transaction Status Tracking.

Next Steps

Cross-Chain Patterns

Bridge-inclusive execution patterns and status handling

Deposit Recipes

End-to-end deposit recipes for multiple protocols

API Parameters

How Composer routes are activated and returned