lifi.quote
Documentation for eth_defi.lifi.quote Python module.
LI.FI cross-chain quote fetching.
See LI.FI API documentation for more details.
Functions
|
Fetch a cross-chain quote from the LI.FI API. |
Classes
LI.FI cross-chain quote response. |
- class LifiQuote
Bases:
objectLI.FI cross-chain quote response.
Contains all information needed to execute a cross-chain transfer, including the ready-to-sign transaction request.
- estimate_to_amount_min: int
Minimum guaranteed amount to receive including slippage (raw, with decimals)
- gas_cost_usd: decimal.Decimal | None
Estimated gas cost in USD
- get_transaction_request()
Get the transaction request from the quote.
This is the ready-to-sign transaction with
from,to,data,value,gasLimit,gasPrice, andchainId.- Returns
Transaction request dict from LI.FI API
- Return type
- get_age_seconds()
Seconds elapsed since this quote was fetched.
- Returns
Age of the quote in seconds.
- Return type
- is_valid(max_age_seconds=120)
Check if this quote is still fresh enough to execute.
The LI.FI
/v1/quoteendpoint does not return an explicit expiry timestamp. This method uses a time-based heuristic: quotes older thanmax_age_secondsare considered stale because gas prices and bridge liquidity change rapidly.
- __init__(source_chain_id, target_chain_id, from_token, to_token, from_amount, estimate_to_amount, estimate_to_amount_min, gas_cost_usd, execution_duration, fetched_at, data)
- fetch_lifi_quote(from_chain_id, to_chain_id, from_token, to_token, from_amount, from_address, to_address=None, slippage=0.03, order='CHEAPEST', api_timeout=30)
Fetch a cross-chain quote from the LI.FI API.
Calls
GET /v1/quoteto get a bridge/swap quote with ready-to-sign transaction data.Example:
from eth_defi.lifi.quote import fetch_lifi_quote from eth_defi.lifi.constants import LIFI_NATIVE_TOKEN_ADDRESS quote = fetch_lifi_quote( from_chain_id=1, # Ethereum to_chain_id=42161, # Arbitrum from_token=LIFI_NATIVE_TOKEN_ADDRESS, to_token=LIFI_NATIVE_TOKEN_ADDRESS, from_amount=10000000000000000, # 0.01 ETH in wei from_address="0xYourWalletAddress", ) tx_request = quote.get_transaction_request() # Sign and send tx_request
- Parameters
from_chain_id (int) – Source chain ID
to_chain_id (int) – Destination chain ID
from_token (str) – Source token address (use
LIFI_NATIVE_TOKEN_ADDRESSfor native token)to_token (str) – Destination token address (use
LIFI_NATIVE_TOKEN_ADDRESSfor native token)from_amount (int) – Amount to send in raw units (wei for ETH)
from_address (str) – Sender wallet address
to_address (str | None) – Recipient wallet address. If None, defaults to
from_address.slippage (float) – Maximum allowed slippage as a decimal (0.03 = 3%)
order (str) – Route preference:
CHEAPESTorFASTESTapi_timeout (float) – API request timeout in seconds
- Returns
Quote with transaction data ready for signing
- Raises
LifiAPIError – If the API returns an error or no route is found
- Return type