Skip to main content
Copy-paste recipes for depositing into supported lending protocols via Composer.
All recipes use the GET /quote endpoint. The same toToken addresses work with POST /advanced/routes and the LI.FI SDK. See API Integration or SDK Integration for full integration guides.

Aave V3

Aave V3 is a decentralised lending protocol. Composer supports deposit and withdraw actions across Aave V3 markets.

Same-Chain: USDC → Aave V3 on Base

curl -X GET 'https://li.quest/v1/quote?\
fromChain=8453&\
toChain=8453&\
fromToken=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&\
toToken=AAVE_V3_AUSDC_TOKEN_ADDRESS_ON_BASE&\
fromAddress=0xYOUR_WALLET_ADDRESS&\
toAddress=0xYOUR_WALLET_ADDRESS&\
fromAmount=1000000'
Replace AAVE_V3_AUSDC_TOKEN_ADDRESS_ON_BASE with the actual Aave V3 aToken address for your target market and chain. You can find aToken addresses on the Aave app.

Cross-Chain: ETH on Ethereum → Aave V3 Lending on Base

As described in the Composer documentation, users with assets on one chain can deposit into a lending protocol on another chain in a single flow.
curl -X GET 'https://li.quest/v1/quote?\
fromChain=1&\
toChain=8453&\
fromToken=0x0000000000000000000000000000000000000000&\
toToken=AAVE_V3_AUSDC_TOKEN_ADDRESS_ON_BASE&\
fromAddress=0xYOUR_WALLET_ADDRESS&\
toAddress=0xYOUR_WALLET_ADDRESS&\
fromAmount=100000000000000000'
LI.FI’s routing engine determines the optimal path, which may include bridging, swapping, and depositing, all from a single API call. The exact execution steps are visible in the route response.
Cross-chain flows require status polling via GET /status. See Cross-Chain Composer Patterns for the full execution flow.

HyperLend

HyperLend is a lending protocol. Composer supports deposit and withdraw actions.

Same-Chain: Deposit into HyperLend

curl -X GET 'https://li.quest/v1/quote?\
fromChain=CHAIN_ID&\
toChain=CHAIN_ID&\
fromToken=SOURCE_TOKEN_ADDRESS&\
toToken=HYPERLEND_TOKEN_ADDRESS&\
fromAddress=0xYOUR_WALLET_ADDRESS&\
toAddress=0xYOUR_WALLET_ADDRESS&\
fromAmount=AMOUNT_IN_SMALLEST_UNIT'
Replace HYPERLEND_TOKEN_ADDRESS with the specific HyperLend deposit token address. You can find token addresses on the HyperLend app.

Seamless

Seamless is a lending protocol. Composer supports deposit and withdraw actions.

Same-Chain: Deposit into Seamless

curl -X GET 'https://li.quest/v1/quote?\
fromChain=CHAIN_ID&\
toChain=CHAIN_ID&\
fromToken=SOURCE_TOKEN_ADDRESS&\
toToken=SEAMLESS_TOKEN_ADDRESS&\
fromAddress=0xYOUR_WALLET_ADDRESS&\
toAddress=0xYOUR_WALLET_ADDRESS&\
fromAmount=AMOUNT_IN_SMALLEST_UNIT'

Maple (Deposit Only)

Maple is a lending protocol. Composer supports deposit only. Withdrawals are not available via Composer.

Deposit into Maple

curl -X GET 'https://li.quest/v1/quote?\
fromChain=CHAIN_ID&\
toChain=CHAIN_ID&\
fromToken=SOURCE_TOKEN_ADDRESS&\
toToken=MAPLE_POOL_TOKEN_ADDRESS&\
fromAddress=0xYOUR_WALLET_ADDRESS&\
toAddress=0xYOUR_WALLET_ADDRESS&\
fromAmount=AMOUNT_IN_SMALLEST_UNIT'

USDai

USDai is a yield-bearing stablecoin protocol. Composer supports deposit and withdraw.

Deposit into USDai

curl -X GET 'https://li.quest/v1/quote?\
fromChain=CHAIN_ID&\
toChain=CHAIN_ID&\
fromToken=SOURCE_TOKEN_ADDRESS&\
toToken=USDAI_TOKEN_ADDRESS&\
fromAddress=0xYOUR_WALLET_ADDRESS&\
toAddress=0xYOUR_WALLET_ADDRESS&\
fromAmount=AMOUNT_IN_SMALLEST_UNIT'

General Pattern

Every lending deposit recipe follows the same pattern as all Composer operations:
GET /quote
  fromChain  = source chain ID
  toChain    = destination chain ID (same or different)
  fromToken  = token you're starting with
  toToken    = LENDING PROTOCOL TOKEN ADDRESS (this triggers Composer)
  fromAmount = amount in smallest unit
  fromAddress = your wallet
  toAddress   = your wallet (receives deposit tokens)
Maple is deposit only. Withdrawals are not available via Composer. All other lending protocols on this page support both deposit and withdraw. Check the Supported Protocols Reference for the full capabilities of each protocol.

Next Steps