跳转到主要内容

通过 API 请求比特币特定信息

curl --request GET \
     --url 'https://li.quest/v1/chains?chainTypes=UTXO' \
     --header 'accept: application/json'

工具

curl --request GET \
  --url 'https://li.quest/v1/tools?chains=20000000000001' \
  --header 'accept: application/json'

代币

curl --request GET \
     --url 'https://li.quest/v1/tokens?chains=BTC' \
     --header 'accept: application/json'

代币详情

curl --request GET \
     --url 'https://li.quest/v1/token?chain=20000000000001&token=bitcoin' \
     --header 'accept: application/json'

请求报价

比特币到以太坊

报价和路由请求到 LI.FI API 的结构相同,分别对应链和代币地址的变量
curl --request GET \
     --url 'https://li.quest/v1/quote?fromAddress=bc1qmdpxhzarlxrygtvlxrkkl0eqguszkzqdgg4py5&fromAmount=500000&fromChain=BTC&fromToken=bitcoin&toAddress=0x39333638696578786b61393361726b63717a6773&toChain=1&toToken=0x0000000000000000000000000000000000000000' \
     --header 'accept: application/json'

以太坊到比特币

curl --request GET \
     --url 'https://li.quest/v1/quote?fromChain=1&toChain=20000000000001&fromToken=0x0000000000000000000000000000000000000000&toToken=bitcoin&fromAddress=0x552008c0f6870c2f77e5cC1d2eb9bdff03e30Ea0&toAddress=bc1qmdpxhzarlxrygtvlxrkkl0eqguszkzqdgg4py5&fromAmount=500000000000000000' \
     --header 'accept: application/json'

执行交易

构建自定义比特币交易

合作伙伴可能想要构建自定义比特币交易,以选择特定的 UTXO,原因包括币控制、UTXO 合并或费用优化等。 构建自定义交易时的要求:
  • 保留 API 响应中的确切输出结构和顺序
  • 确保选定的 UTXO 有足够的价值来覆盖:
    • 桥接存款金额(第一个输出)
    • 如果桥接要求,则退款输出(第三个输出,必须高于尘埃阈值)
    • 集成商费用(额外输出)
关键: 输出顺序和结构不能被修改。偏离 API 响应结构将导致交易卡住或失败。

交易数据

比特币到以太坊、雪崩或 BNB 智能链(BSC) 获取报价后,需要将资金发送到响应中提供的 BTC 保管地址,并附上备注。 备注功能: 类似于 Thorchain,LI.FI 使用备注进行 BTC 到 EVM 的交换。根据工具,BTC 交易中的备注指定了要执行的桥接特定交易数据和内部 LI.FI 的跟踪详情。 交易处理: 离开 BTC 并前往 EVM 的交易需要被发送到一个 EVM 地址。备注确保交换详情被验证者正确处理。
注意:只在及时的情况下发送交易(约 30 分钟)。始终建议请求最新的报价,以确保获取最新信息。
修改比特币交易数据的风险修改我们 API 收到的 PSBT 或原始比特币交易数据(例如移除输出、更改金额或编辑操作码/脚本)可能会使签名或支出条件无效,并导致资金不可逆转的损失。除非您是专家,并且已与我们明确确认您打算进行的修改,否则不要更改 PSBT。
以下是交易数据的示例
"transactionRequest": {
    "to": "bc1qawcdxplxprc64fh38ryy4crndmfgwrffpac743", //发送 BTC 到的 thorswap 保管地址
    "data": "=:ETH.USDC:0x29DaCdF7cCaDf4eE67c923b4C22255A4B2494eD7::lifi:0|0x4977d81c2a5d6bd8",
    "value": "500000"
  }

从 PSBT 提取交易数据

在使用选定的 UTXO 构建自定义比特币交易时,合作伙伴需要从 API 返回的 PSBT(部分签名的比特币交易)中提取备注和其他交易详情。 关键信息:
  • 备注包含在 PSBT 的 OP_RETURN 输出(第二个输出)中
  • 这个备注必须完全按照提供的来保留 - 它包含了桥接特定的调用数据和 LI.FI 的跟踪详情
  • 存款人地址在第一个输出中
  • 退款地址(如果需要)在第三个输出中
合作伙伴可以解析 PSBT 以提取这些值,并在保持确切输出结构的同时,用他们选定的 UTXO 重构交易。

每个工具的比特币交易要求

关键:输出结构不能被修改API 提供的输出顺序和结构必须完全复制。更改顺序、移除输出或修改金额将导致交易卡住。构建自定义交易的合作伙伴必须保留确切的结构,同时只更改输入 UTXO。
输出结构的一般要求如下:
  • 第一个输出: 桥接金额发送到桥接存款人地址
  • 第二个输出: 包含具有桥接特定和 LI.FI 跟踪详情的备注的 OP_RETURN(必须完全保留)
  • 第三个输出: 退款输出返回给发送者的地址(对某些桥是可选的,对其他桥是必须的 - 见下文详情)
  • 剩余输出: 集成商特定的费用转移
尘埃阈值要求: 所有包含价值的输出必须超过尘埃阈值,这由输出地址类型决定:
  • Pay To Witness Public Key Hash (p2wpkh) - 294 sats
  • Pay To Witness Script Hash (p2wsh) - 330 sats
  • Pay To Script Hash (p2sh) - 540 sats
  • Pay To Public Key Hash (p2pkh) - 546 sats
  • Pay To Taproot (p2tr) - 330 sats

桥接要求摘要

Thorswap 备注(OP_RETURN 输出)包含要执行的 Thorswap 调用数据和 LI.FI 跟踪 id。保留两者都很重要,以避免交易卡住或失败。
// 备注示例 =:ETH.USDC:0x29DaCdF7cCaDf4eE67c923b4C22255A4B2494eD7::lifi:0|0x4977d81c2a5d6bd8
Unit Unit 桥接在备注中没有任何桥接特定的详情,因此它只包含 LI.FI 跟踪详情。
// 备注示例 =|lifi02bf57fe
Symbiosis Symbiosis 桥接在备注中没有任何桥接特定的详情,因此它只包含 LI.FI 跟踪详情。
// 备注示例 =|lifi02bf57fe
不正确的交易结构将导致需要手动退款干预的卡住转账。确保输出顺序与 API 响应完全匹配。
Relay 备注(OP_RETURN 输出)包含要执行的 Relay 调用数据和 LI.FI 跟踪 id。保留两者都很重要,以避免交易卡住或失败。
// 备注示例 0x986c2efd25b8887e9c187cfe2162753567339b6313e7137b749e83d4a1a79b03=|lifi92c9cbbc5
Chainflip Chainflip PSBT 需要如上所述有三个输出。如果跳过退款输出,交易将不会被正确处理。备注(OP_RETURN 输出)包含要执行的 Chainflip 负载和 LI.FI 跟踪 id。保留两者都很重要,以避免交易卡住或失败。
// 备注示例 0x01071eb6638de8c571c787d7bc24f98bfa735425731c6400f4c5ef05000000000000000000000000ff010002001e0200=|lifi92c9cbbc5
CRITICAL: Chainflip 资金损失风险Chainflip 交易如果输出结构不正确,将导致永久、无法恢复的资金损失。与其他桥接不同,Chainflip 不能手动退款卡住的交易。强制要求:
  • 所有三个输出必须按确切顺序出现:(1) 存款金额,(2) OP_RETURN 备注,(3) 退款输出
  • 退款输出(第三个输出)是强制性的,必须高于尘埃阈值
  • 不要修改、移除或重新排序 API 响应中的任何输出
未能完全遵守这些要求将导致不可逆转的资金损失,没有恢复选项。