介绍
# LI.FI Agent Skill
## 关键规则(请首先阅读) 1. 仅使用 `curl` 调用 LI.FI API。切勿使用 `web_search`、`web_fetch` 或任何其他工具。 2. 仅使用下方记录的端点。不要猜测或臆造 URL。 3. Base URL 为 `https://li.quest/v1/`。不要使用其他 Base URL。 4. 始终包含认证头:`"x-lifi-api-key: $LIFI_API_KEY"`(双引号,美元符号 —— 由 Shell 展开)。 5. 始终告知用户报价由 LI.FI 提供。 6. **默认滑点:10% (0.10)。** 如果用户的策略中有自定义滑点(通过 `defi_get_strategy`),则使用该值。如果用户要求,Agent 也可以针对每笔交易动态调整。 7. 默认截止时间:10 分钟。 8. 始终向所有 `/v1/quote` 请求添加 `&skipSimulation=true`。我们的 EIP-7702 代理钱包拥有链上代码,会破坏 LI.FI 的模拟。 9. 切勿自行构建 ERC-20 授权调用数据 (hex)。始终使用 `defi_approve` 或 `defi_approve_and_send` 工具。 10. **所有交换、跨链桥和 DeFi 代币操作必须通过 LI.FI 进行。** 没有例外。不得手动与 DEX 交互。
## 交易链接
在每次广播交易后,**务必**提供可点击的区块浏览器链接: - EVM: `[View tx](https://basescan.org/tx/0xHASH)` —— 使用正确的浏览器 (etherscan.io, basescan.org, arbiscan.io, polygonscan.com, optimistic.etherscan.io) - Sui: `[View tx](https://suiscan.xyz/txblock/{txDigest})`
## Sui
- **Sui 链 ID: `9270000000000000`**。当用户需要 Sui 时,在 LI.FI 报价请求中使用此 ID 作为 `fromChain` 和 `toChain`(例如,同链 Sui 交换使用 `fromChain=9270000000000000&toChain=9270000000000000`)。 - LI.FI 支持 **Sui** 进行同链交换以及与 EVM 和 Solana 之间的跨链桥。 - 对于 Sui 报价,使用 `defi_get_wallet` 中的用户 **suiAddress** 作为 `fromAddress`。 - **使用 `defi_send_sui_transaction` 执行 Sui 报价** —— 传入 LI.FI 报价的交易字节 (hex)。对于 Sui,**不要**使用 `defi_send_transaction` 或 `defi_approve_and_send`。 - Sui 不使用 ERC-20 授权;Sui 交换没有授权步骤。
## 端点
### GET /v1/chains — 列出支持的链
```bash curl -s --request GET \ --url https://li.quest/v1/chains \ --header "x-lifi-api-key: $LIFI_API_KEY" ```
用于:列出链,测试连接性。如果用户要求测试,请使用此端点。
### GET /v1/tokens — 列出链上的代币
```bash curl -s --request GET \ --url 'https://li.quest/v1/tokens?chains=8453' \ --header "x-lifi-api-key: $LIFI_API_KEY" ```
参数:`chains`(逗号分隔的链 ID)。
### GET /v1/quote — 获取包含交易数据的交换/跨链桥报价
```bash curl -s --request GET \ --url 'https://li.quest/v1/quote?fromChain=8453&toChain=8453&fromToken=ETH&toToken=USDC&fromAddress=0xYOUR_ADDRESS&fromAmount=100000000000000&slippage=0.10&skipSimulation=true' \ --header "x-lifi-api-key: $LIFI_API_KEY" ```
参数:`fromChain`、`toChain`、`fromToken`、`toToken`、`fromAddress`、`toAddress`(可选)、`fromAmount`(以 wei 为单位)、`slippage`(小数,例如 0.10 = 10%)、`skipSimulation=true`(始终包含)。
返回:`estimate`(包含 `toAmount`、`toAmountMin`、`approvalAddress`)和 `transactionRequest`(准备好提交到钱包)。
向用户展示报价后,始终包含预估输出金额、费用和滑点。使用 `defi_get_wallet` 获取用户的钱包地址,并将其作为报价中的 `fromAddress`。
#### 执行报价
**检查是否需要 ERC-20 授权:** 如果报价的 `transactionRequest.value` 为 `"0x0"` **且** 存在 `estimate.approvalAddress`,则该交换/跨链桥正在使用需要先行授权的 ERC-20 代币。
- **如果需要授权:** 使用 `defi_approve_and_send` 并附带: - `token`:报价中的 `action.fromToken.address` - `spender`:报价中的 `estimate.approvalAddress` - `approveAmount`:报价中的 `action.fromAmount`(或省略以使用无限额度) - `to`、`value`、`data`、`gasLimit`:来自报价的 `transactionRequest`
- **如果不需要授权**(原生 ETH 交换,value > 0x0):使用 `defi_send_transaction` 并附带报价 `transactionRequest` 中的字段:**to, value, data, chainId 和 gasLimit**(务必传入报价中的 `gasLimit`)。
**切勿自行构建授权调用数据 hex。** `defi_approve` 和 `defi_approve_and_send` 工具会正确处理 ABI 编码。
**Sui:** 对于 `fromChain` 或 `toChain` 为 Sui 的报价,使用 `defi_send_sui_transaction` 传入报价的交易字节。无需授权步骤。
### POST /v1/advanced/routes — 获取多个路由选项
```bash curl -s --request POST \ --url https://li.quest/v1/advanced/routes \ --header 'Content-Type: application/json' \ --header "x-lifi-api-key: $LIFI_API_KEY" \ --data '{ "fromChainId": 8453, "fromAmount": "100000000000000", "fromTokenAddress": "0x0000000000000000000000000000000000000000", "toChainId": 8453, "toTokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "options": { "slippage": 0.10, "order": "RECOMMENDED" } }' ```
### POST /v1/quote/contractCalls — 多步合约调用 (BETA)
```bash curl -s --request POST \ --url https://li.quest/v1/quote/contractCalls \ --header 'Content-Type: application/json' \ --header "x-lifi-api-key: $LIFI_API_KEY" \ --data '{ "fromChain": 10, "fromToken": "0x4200000000000000000000000000000000000042", "fromAddress": "0xYOUR_ADDRESS", "toChain": 1, "toToken": "ETH", "toAmount": "100000000000001", "contractCalls": [] }' ```
### GET /v1/status — 检查转账状态
```bash curl -s --request GET \ --url 'https://li.quest/v1/status?txHash=0xYOUR_TX_HASH&fromChain=8453' \ --header "x-lifi-api-key: $LIFI_API_KEY" ```
传入 `fromChain` 以加快查找速度。
### GET /v1/tools — 列出可用的跨链桥和交易所
```bash curl -s --request GET \ --url 'https://li.quest/v1/tools?chains=8453' \ --header "x-lifi-api-key: $LIFI_API_KEY" ```
## 文档 - LLM 文档: https://docs.li.fi/llms.txt - OpenAPI: https://gist.githubusercontent.com/kenny-io/7fede47200a757195000bfbe14c5baee/raw/725cf9d4a6920d5b930925b0412d766aa53c701c/lifi-openapi.yaml