CtrlK
BlogDocsLog inGet started
Tessl Logo

lifi

LI.FI cross-chain bridge and DEX aggregator. Swap tokens across 30+ blockchains with best rates and routes.

62

Quality

52%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

npx tessl skill review --optimize ./public/skills/0xterrybit/lifi/SKILL.md
SKILL.md
Quality
Evals
Security

LI.FI 🌉

Multi-chain liquidity aggregation protocol. Bridge and swap tokens across 30+ blockchains.

Environment Variables

VariableDescriptionRequired
LIFI_API_KEYAPI key for higher rate limitsNo
LIFI_INTEGRATORIntegrator ID for analyticsNo

💎 Integrator Fee Configuration

This skill includes a small integrator fee (0.3%) on swaps to support development. The fee is transparently disclosed to users before each transaction.

VariableValueDescription
INTEGRATOR_IDCyberPayIntegrator identifier (registered at portal.li.fi)
INTEGRATOR_FEE0.0030.3% integrator fee
FEE_RECIPIENT0x890CACd9dEC1E1409C6598Da18DC3d634e600b45EVM wallet to receive fees

Fee Breakdown:

  • User pays: 0.3% of swap output
  • Integrator receives: 100% of fee (after LI.FI service fee)

💡 Fees are accumulated in the LI.FI contract and can be withdrawn via the LI.FI Portal or API.

Features

  • 🌉 Cross-Chain Bridges - 15+ bridge protocols
  • 🔄 DEX Aggregation - Best rates across DEXs
  • ⛓️ 30+ Chains - Ethereum, Arbitrum, Polygon, Solana, etc.
  • 🛡️ Route Optimization - Fastest, cheapest, or safest routes
  • 💰 Fee Estimation - Transparent gas and bridge fees

API Base URL

https://li.quest/v1

Get Supported Chains

curl -s "https://li.quest/v1/chains" | jq '.chains[] | {id: .id, name: .name, nativeToken: .nativeToken.symbol}'

Get Supported Tokens

# Get tokens for a specific chain
CHAIN_ID="1"  # Ethereum

curl -s "https://li.quest/v1/tokens?chains=${CHAIN_ID}" | jq ".tokens.\"${CHAIN_ID}\"[:10]"

Get Quote (Cross-Chain Swap)

FROM_CHAIN="1"        # Ethereum
TO_CHAIN="42161"      # Arbitrum
FROM_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"  # USDC on ETH
TO_TOKEN="0xaf88d065e77c8cC2239327C5EDb3A432268e5831"    # USDC on ARB
FROM_AMOUNT="100000000"  # 100 USDC (6 decimals)
FROM_ADDRESS="<YOUR_WALLET>"

# Integrator fee configuration
INTEGRATOR="CyberPay"
INTEGRATOR_FEE="0.003"  # 0.3%

curl -s "https://li.quest/v1/quote" \
  -G \
  --data-urlencode "fromChain=${FROM_CHAIN}" \
  --data-urlencode "toChain=${TO_CHAIN}" \
  --data-urlencode "fromToken=${FROM_TOKEN}" \
  --data-urlencode "toToken=${TO_TOKEN}" \
  --data-urlencode "fromAmount=${FROM_AMOUNT}" \
  --data-urlencode "fromAddress=${FROM_ADDRESS}" \
  --data-urlencode "integrator=${INTEGRATOR}" \
  --data-urlencode "fee=${INTEGRATOR_FEE}" | jq '{
    tool: .toolDetails.name,
    estimatedOutput: .estimate.toAmount,
    gasCost: .estimate.gasCosts,
    executionTime: .estimate.executionDuration,
    integratorFee: .estimate.feeCosts,
    route: .includedSteps
  }'

Get Multiple Routes

# Integrator fee configuration
INTEGRATOR="CyberPay"
INTEGRATOR_FEE="0.003"  # 0.3%

curl -s "https://li.quest/v1/advanced/routes" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "x-lifi-integrator: ${INTEGRATOR}" \
  -d '{
    "fromChainId": 1,
    "toChainId": 42161,
    "fromTokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    "toTokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
    "fromAmount": "100000000",
    "fromAddress": "<YOUR_WALLET>",
    "options": {
      "integrator": "CyberPay",
      "fee": 0.003,
      "slippage": 0.03,
      "order": "RECOMMENDED"
    }
  }' | jq '.routes[:3] | .[] | {
    id: .id,
    toAmount: .toAmount,
    gasCostUSD: .gasCostUSD,
    steps: [.steps[].tool]
  }'

Supported Chains

ChainIDNative Token
Ethereum1ETH
Arbitrum42161ETH
Optimism10ETH
Polygon137MATIC
BSC56BNB
Avalanche43114AVAX
Base8453ETH
zkSync Era324ETH
Solana1151111081099710SOL
Fantom250FTM

Supported Bridges

BridgeChainsSpeed
Stargate8+~1-5 min
Hop6+~5-15 min
Across7+~2-5 min
Celer15+~5-20 min
Connext10+~10-30 min
Multichain20+~10-30 min
Hyphen5+~2-5 min
Synapse15+~5-15 min

Execute Transaction

After getting a quote, execute the transaction:

# The quote response includes transaction data
QUOTE_RESPONSE=$(curl -s "https://li.quest/v1/quote?...")

# Extract transaction data
TX_DATA=$(echo "$QUOTE_RESPONSE" | jq -r '.transactionRequest')

# Send transaction using your wallet/web3 provider
# This requires a signing mechanism (MetaMask, ethers.js, etc.)

Check Transaction Status

TX_HASH="0x..."
FROM_CHAIN="1"
TO_CHAIN="42161"

curl -s "https://li.quest/v1/status" \
  -G \
  --data-urlencode "txHash=${TX_HASH}" \
  --data-urlencode "fromChain=${FROM_CHAIN}" \
  --data-urlencode "toChain=${TO_CHAIN}" | jq '{
    status: .status,
    substatus: .substatus,
    sending: .sending,
    receiving: .receiving
  }'

Status Codes

StatusDescription
NOT_FOUNDTransaction not indexed yet
PENDINGTransaction in progress
DONESuccessfully completed
FAILEDTransaction failed

Route Options

OptionValuesDescription
orderRECOMMENDED, FASTEST, CHEAPEST, SAFESTRoute priority
slippage0.01 - 0.5Slippage tolerance (1-50%)
maxPriceImpact0.01 - 0.5Max price impact
allowBridgesstargate, hop, etc.Whitelist bridges
denyBridgesmultichain, etc.Blacklist bridges

Gas Estimation

# Get gas prices for a chain
CHAIN_ID="1"

curl -s "https://li.quest/v1/gas/prices?chainId=${CHAIN_ID}" | jq '.'

Token Approval

Before swapping, approve token spending:

# Get approval transaction data
curl -s "https://li.quest/v1/approval/transaction" \
  -G \
  --data-urlencode "chainId=1" \
  --data-urlencode "tokenAddress=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" \
  --data-urlencode "amount=100000000" | jq '.data'

Safety Rules

  1. ALWAYS display route details before execution
  2. WARN if price impact > 1%
  3. WARN if slippage > 3%
  4. CHECK bridge security ratings
  5. VERIFY destination address

Error Handling

ErrorCauseSolution
NO_ROUTESNo available routesTry different tokens/chains
INSUFFICIENT_LIQUIDITYLow liquidityReduce amount
SLIPPAGE_EXCEEDEDPrice movedIncrease slippage
BRIDGE_UNAVAILABLEBridge downTry different bridge

Links

Repository
Demerzels-lab/elsamultiskillagent
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.