通过 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 跟踪详情。
Symbiosis
Symbiosis 桥接在备注中没有任何桥接特定的详情,因此它只包含 LI.FI 跟踪详情。
不正确的交易结构将导致需要手动退款干预的卡住转账。确保输出顺序与 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 响应中的任何输出
未能完全遵守这些要求将导致不可逆转的资金损失,没有恢复选项。