获取跨链兑换所需的交易数据。
GET https://www.okx.com/api/v5/dex/cross-chain/build-tx
参数 | 类型 | 必传 | 描述 |
---|---|---|---|
fromChainId | String | 是 | 源链 ID (如1 : Ethereum,更多可查看链 ID 列表) |
toChainId | String | 是 | 目标链 ID (如1 : Ethereum,更多可查看链 ID 列表) |
fromTokenAddress | String | 是 | 询价币种合约地址 (如0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE ) |
toTokenAddress | String | 是 | 目标币种合约地址 (如TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8 ) |
amount | String | 是 | 币种询价数量 币种询价数量 (数量需包含精度,如授权 1.00 USDT 需输入 1000000 ,授权 1.00 DAI 需输入 1000000000000000000 ),币种精度可透过币种列表取得 |
sort | Integer | 否 | 跨链路径选择 0 代表默认路径,是预计获得数量最多的路径 1 代表综合最优路径,是综合计算获得数量、网络费用、滑点、跨链桥费后的最优路径 2 代表最快路径,是耗时最少的路径 |
slippage | String | 是 | 滑点限制,最小值:0.002 ,最大值:0.5 。(如:0.005代表你接受这笔交易最大 0.5%滑点,0.5 就代表你接受这笔交易最大 50%的滑点)1. 如果只通过跨链桥把同一个token X 从A链跨到b链,推荐滑点设定0.002 2. 如果除了通过跨链桥把token X 从A链跨到b链,还涉及到其他币别转换,推荐滑点设定0.01-0.025,实际滑点设置需同时考量币别交易量 |
userWalletAddress | String | 是 | 用户钱包地址,AA钱包地址暂不支持跨链交易 (如0x6f9ffea7370310cd0f890dfde5e0e061059dcfd9 ) |
allowBridge | Array | 否 | 指定该跨链桥是否包含在路径里面 (如[211,235] ) |
denyBridge | Array | 否 | 指定该跨链桥是否不包含在路径里面 (如[211,235] ) |
receiveAddress | String | 否 | 用于自定义设置目标币种的接收地址,如果未设置则返回用户发送交易的钱包地址。TRON, SUI 以及其他非EVM链,需要设置自定义接收地址。 (如:0x3f6a3f57569358a512ccc0e513f171516b0fd42a ) |
feePercent | String | 否 | 发送到分佣地址的询价币种数量百分比 最小百分比:0 最大百分比:3 |
referrerAddress | String | 否 | 分佣地址 (如:0x6f9ffea7370310cd0f890dfde5e0e061059dcfd9) 收取分佣费用的 fromToken 地址。使用 API 时,可结合 feePercent 设置佣金比例。 注意: 1. 对于EVM:此处不支持涉及打包币对的交易,例如 ETH 和 WETH 的交易 2. 对于Solana:分佣地址需提前存入一些SOL进行激活。 |
priceImpactProtectionPercentage | String | 否 | (可选,默认值为 90%) 允许的价格影响百分比 (介于 0 和 1.0 之间)。 当用户设置了 priceImpactProtectionPercentage 后,如果估算的价格影响超过了指定的百分比,将会返回一个错误。例如,如果 PriceImpactProtectionPercentage = .25 (25%),任何价格影响高于 25% 的报价都将返回错误。 这是一个可选开启的功能,默认值为 0.9。当百分比被设置为 1.0 (100%) 时,此功能将被禁用,也就是说,每一笔交易都会被允许通过。 注意:当我们无法计算价格影响时,我们会返回 null,并且价格影响保护也会被禁用。 |
onlyBridge | boolean | 否 | 仅通过跨链桥完成跨链交易,不涉及源链兑换以及目标链兑换。 |
memo | String | 否 | 你可以自定义 /build-tx 中携带的参数,数据编码为长度固定为 64 字节、128 个字符长度的 16 进制字符串,并可通过 /status API 查询。 |
参数 | 类型 | 描述 |
---|---|---|
fromTokenAmount | String | 询价币种的兑换数量 (数量需包含精度,如 1.00 USDT 则为 1000000 ) |
toTokenAmount | String | 目标币种的兑换数量 (数量需包含精度,如 1.00 USDT 则为 1000000 ) |
minmumReceive | String | 目标币种的最小兑换数量 (兑换价格达到滑点限制的极限值时,目标币种的兑换数量) |
router | Object | 跨链桥基础信息 |
bridgeId | Integer | 跨链桥 ID (如:211 ) |
bridgeName | String | 跨链桥名称 (如: cBridge ) |
otherNativeFee | String | 部分跨链桥会额外收取一定数量的源链主网币,作为跨链桥手续费,并不是所有跨链桥都会收取该部分费用。目前收取该费用的跨链桥有 Stargate、Wanchain、Arbitrum 官方桥、zkSync Era 官方桥、Linea 官方桥。 使用该三方桥需支付otherNativeFee 才能完成交易。 |
crossChainFee | String | 跨链桥收取的费用,一般为稳定币或者WETH |
crossChainFeeTokenAddress | String | 跨链桥费币种信息(如:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE 代表主网代币地址) |
tx | Object | 交易上链所需的数据信息 |
data | String | 上链 inputData 数据 |
from | String | 用户钱包地址 (如:0x6f9ffea7370310cd0f890dfde5e0e061059dcfd9 ) |
to | String | 欧易 DEX router 合约地址 (如:0x6dc1fb08decf9f95a01222baa359aa0e02e07716 ) |
value | String | 与合约交互的主链币数量 (wei) (如:0 ) |
gasLimit | String | gas费用限额 (交易的gas (单位:wei)。如果该值太低,无法实现报价,则会返回错误信息) (如:50000 ) |
gasPrice | String | 以 wei 位单位的 Gas price (如:110000000 ) |
maxPriorityFeePerGas | String | EIP-1559:每单位 gas 优先费用的推荐值 (如:500000000 ) |
randomKeyAccount | Array | 随机私钥账户参数并不是每次交易都需要。仅在某些特殊交易(例如使用CCTP桥进行代币跨链)时,才会生成和返回这个随机私钥账户。提供此参数时,您必须使用它与用户的钱包私钥一起进行多签操作,以确保交易的安全和顺利完成。点击此处查看多签示例 |
signatureData | Array | 如果返回此参数,则代表该交易需要额外的签名数据。开发者应将此参数作为交易签名的输入之一,并确保其在签名过程中正确应用。 |
curl --location --request GET 'https://www.okx.com/api/v5/dex/cross-chain/build-tx?amount=15&fromChainId=324&toChainId=42161&fromTokenAddress=0x3355df6d4c9c3035724fd0e3914de96a5a83aaf4&toTokenAddress=0xff970a61a04b1ca14834a43f5de4533ebddb5cc8&slippage=0.07&userWalletAddress=0x22497668Fb12BA21E6A132de7168D0Ecc69cDF7d&feePercent=1&referrerAddress=0x3f6a3f57569358a512ccc0e513f171516b0fd42a' \
--header 'OK-ACCESS-PROJECT: 86af********d1bc' \
--header 'OK-ACCESS-KEY: 37c541a1-****-****-****-10fe7a038418' \
--header 'OK-ACCESS-SIGN: leaV********3uw=' \
--header 'OK-ACCESS-PASSPHRASE: 1****6' \
--header 'OK-ACCESS-TIMESTAMP: 2023-10-18T12:21:41.274Z'
{
"code":0,
"msg":"",
"data":
[
{
"fromTokenAmount": "1000000000000",
"router": {
"bridgeId": 235,
"bridgeName": "swft",
"crossChainFee": "4.67131461",
"otherNativeFee": "1.50000000",
"crossChainFeeTokenAddress": "0x6b175474e89094c44da98b954eedeac495271d0f"
},
"toTokenAmount": "1000000000000",
"minmumReceive": "1000000000000",
"tx":{
"data":"0xc748673057861a797275cd8a068abb95a902e8de",
"from":"0x6dc1fb08decf9f95a01222baa359aa0e02e07716",
"to":"0x6dc1fb08decf9f95a01222baa359aa0e02e07716",
"value":0,
"gasLimit":"442621",
"gasPrice":"3192374970",
"maxPriorityFeePerGas":"3599"
"randomKeyAccount":["xxxxxxx0x6dc1fb08decf9f95a01222baa359aa0e02e079999"]
}
}
]
}