指令模式 API
概述
- 接入时提前协定商家代码,通过header传入:Partner-Code;
- 目前支持的链:ETH, SOL, BNB chain, Base, Polygon, Arbitrum, Morph,其它链的接入需要提前告知;
- 交易手续费:
- 目前支持的手续费方式为代收,按周期结算;
- 自定义收费地址正在建设中;
HTTP状态码定义
| 状态码 | 说明 |
|---|---|
| 200 | success |
| 400 | Bad Request |
| 403 | Forbidden(未加白名单或者是签名错误) |
| 429 | Too many requests(被限频) |
询价接口
请求路径: /bgw-pro/swapx/pro/quote
请求方法: POST
请求参数:
| 字段名 | 字段类型 | 是否必传 | 字段说明 |
|---|---|---|---|
| fromSymbol | string | 否 | 源代币名称 |
| fromContract | string | 是 | 源代币合约地址,主链币传空字符串 |
| fromAmount | string | 是 | 询价金额(input amount) |
| fromChain | string | 是 | 源链 |
| toSymbol | string | 否 | 目标代币名称 |
| toContract | string | 是 | 目标代币合约地址,主链币传空字符串 |
| toChain | string | 是 | 目标链 |
| fromAddress | string | 否 | 扣款地址,预估gas会用到,若不传则使用默认地址进行预估Gas |
| estimateGas | bool | 否 | 是否估算gas,默认false,需和fromAddress搭配使用 |
| market | string | 否 | 指定询价渠道,例如uniswap.v3,pancakeswap。默认则使用所有支持的market |
| feeRate | number | 否 | 千分位的手续费率,默认使用渠道配置的手续费率,免手续费则传0 |
| solMaxAccounts | number | 否 | 最大账户数,默认无限制,只适用于SOL链(限制账户数会影响价格优势) |
请求参数示例:
{
"fromSymbol": "USDT",
"fromContract": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"fromAmount": "1",
"fromChain": "sol",
"toSymbol": "USDC",
"fromAddress": "ApPjjUmJuraNuFZ2n41TBzdshd3pmDEQvH6hFukQ1Yv2",
"toChain": "sol",
"toContract": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"estimateGas": true,
"skipCache": true
}响应说明:
| 参数名称 | 参数类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| status | number | 必须 | 请求码,0为成功 |
| data | object | 必须 | - |
| toAmount | string | 必须 | 输出数量 |
| market | string | 必须 | 渠道名称 |
| estimateRevert | bool | 必须 | 链标识 |
| slippage | string | 必须 | 滑点 |
| computeUnits | number | 非必须 | sol链tx compute unit消耗 |
| gasLimit | number | 非必须 | gas limit预估 |
响应示例:
{
"status": 0,
"data": {
"toAmount": "1.000972",
"market": "jupiter.router",
"slippage": "2",
"estimateRevert": true,
"gasLimit": 0,
"computeUnits": 650000
}
}获取calldata接口
请求路径: /bgw-pro/swapx/pro/swap
请求方法: POST
请求参数:
| 字段名 | 字段类型 | 是否必传 | 字段说明 |
|---|---|---|---|
| fromSymbol | string | 否 | 源代币名称 |
| fromContract | string | 是 | 源代币合约地址,主链币传空字符串 |
| fromAmount | string | 是 | 卖出数量(input amount) |
| fromChain | string | 是 | 源链 |
| toSymbol | string | 否 | 目标代币名称 |
| toContract | string | 是 | 目标代币合约地址,主链币传空字符串 |
| toChain | string | 是 | 目标链 |
| toMinAmount | string | 否 | 最小收到数量,不传则使用滑点计算得到 |
| fromAddress | string | 是 | 扣款地址 |
| toAddress | string | 是 | 收款地址 |
| slippage | number | 否 | 滑点,单位为百分比(如传1表示1%),默认使用系统配置的滑点 |
| market | string | 是 | 询价接口返回的最优渠道 |
| feeRate | number | 否 | 基于千分位手续费率,默认使用渠道配置的手续费率,免手续费则传0 |
| executorAddress | string | 否 | 执行合约地址,如果不用fromAddress发起交易,则需要传入执行合约地址 |
| solMaxAccounts | number | 否 | 最大账户数,默认无限制,只适用于SOL链 |
| feePayer | string | 否 | 手续费支付地址,默认使用fromAddress支付SOL链的账户创建费用 |
| deadline | number | 否 | 交易过期时间,单位秒,默认600秒 |
| protocols | string | 否 | 协议列表,默认使用所有支持的协议 |
| requestMod | string | 否 | 请求模式,可选值为 “simple” 或 “rich” |
请求参数示例:
{
"fromSymbol": "USDT",
"fromContract": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"fromAmount": "0.5",
"fromChain": "sol",
"toSymbol": "USDC",
"fromAddress": "ApPjjUmJuraNuFZ2n41TBzdshd3pmDEQvH6hFukQ1Yv2",
"toAddress": "ApPjjUmJuraNuFZ2n41TBzdshd3pmDEQvH6hFukQ1Yv2",
"toChain": "sol",
"toContract": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"slippage": 1,
"toMinAmount": 0.4,
"market": "bgw.aggregator"
}响应说明:
| 参数名称 | 参数类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| status | number | 必须 | 请求码,0为成功 |
| data | object | 必须 | - |
| id | string | 必须 | 订单id |
| market | string | 必须 | 渠道名称 |
| contract | string | 非必须 | 合约地址,EVM链会返回对应合约地址 |
| calldata | string | 必须 | calldata |
| deadline | number | 必须 | 订单超时时间(秒) |
| computeUnits | number | 非必须 | SOL链tx compute unit消耗 |
响应示例:
{
"status": 0,
"data": {
"id": "9b4d17ccf0e84a9e976788bfc1f31423",
"market": "bgw.aggregator",
"contract": "",
"calldata": "7uXV2gF3AZ2e2ZpGkknQkbhD2XJzDEsMzBWJEBM4iJBu3tF89cmRjeKudo6K4R2bB9321177Hxneuf6zznxphUwxSACYmA7D1AaNW9bpvV5X4khFdufcGrwLsxVHY1j9WFwHHBP6wEhnWT2H5Hdg3HV5cLEpeUtLHBo6y6YRepJ1Bf8L2zJAfTwiicxghTCNg7x7r8b5xSuE4oqVGRFaY11XSM6QykeevMkRBnTFYHqrcnKctiYJF2eQRCnoKMcqwT2frXbafRmj1MC4LKPdnJVjVjkDnqEbAnooBYwQ4AXywjp2h8Sk1BwkEowP4Zko4yUrpbLmq3mUvXoke9vgp52nv5udaYxo6G2w11W1k6Ha7fPBZCHKLyJvuiXcd6Zw5TRZ2KfFnY3ehFvSvedEw3XGUrAH98gGGVHQ1i7rUUb3o7LFFaSReXw2s12BSBHoSCub3emuQJVRACFC9z66sxmvWhrjC7r1vwg7hgKBTrannvkzyq3U9WMzxVBdiDLXcXpFiy2ePDKfzL81tnwaGRpA2x8db6P4UVzk11gvfWwhGi7YnAs8MS85U7ehELVQBJ3tKrjmRgfwx6uardEfmFb6fm86CnbfsZXzmARN2UhMBheUL8YTZAGr8nAUBn7wLkzTWLGbG8zmb8GkD7hAknSVyHy32FGyMsAcqDgW4ZKWNAWBQPmwC9KRfuTbr6YYg98pBLoJgphhJcnhv1jiRyCwyWcxDskAgBigeTKCNBNpJu85eve1V9vGKa8HUKerLZ52QvpCWoEavjFMaAk9x2yeFTVkGQxRWeR8VZxBq3BQTvCtzuZ3wXvDeoHYZKc4bUwxyzLs57cGYHMuhDHJjiXPgrx3CjMTnH2LpfqgQjHGKcHW3vLqBDdBUeLffshPmx5o23LT4h9e8CQVBGQgHzj4SHMoC6V3F5hiLLvM",
"deadline": 600,
"computeUnits": 650000
}
}反向询价 Swap 接口
反向询价 Swap 接口将询价和交易构建合并为一次调用,支持两种交易模式:
- exactIn(精确输入模式):用户指定输入代币数量,系统计算预期输出数量。
- minAmountOut(最小输出模式):用户指定期望获得的最小输出代币数量,系统通过反向询价算法计算所需输入数量。如果链上执行过程不满足 amount 则 revert。
请求路径: /bgw-pro/swapx/pro/swapr
请求方法: POST
请求参数:
| 字段名 | 字段类型 | 是否必传 | 默认值 | 字段说明 |
|---|---|---|---|---|
| fromChain | string | 是 | - | 链标识,如 sol、eth、bnb、base 等 |
| fromContract | string | 是 | - | 源代币合约地址(主链币传空字符串 "" ) |
| toContract | string | 是 | - | 目标代币合约地址(主链币传空字符串 "" ) |
| amount | string | 是 | - | 金额(精度为代币 decimals),含义取决于 requestMode |
| requestMode | string | 是 | - | 请求模式,可选值:exactIn / minAmountOut |
| fromAddress | string | 是 | - | 用户钱包地址(扣款地址),长度 1-256 |
| toAddress | string | 是 | - | 收款地址,长度 1-256 |
| slippage | string | 否 | "0.5" | 滑点容忍度百分比(如 "0.5" 表示 0.5%) |
| feeRate | float64 | 是 | - | 手续费率(千分位),必须 ≥ 0 |
| deadline | int | 否 | 600 | 交易过期时间(秒) |
| executorAddress | string | 否 | - | 执行合约地址(非 fromAddress 发起交易时需要) |
requestMode 说明:
| 模式 | amount 含义 | 说明 |
|---|---|---|
| exactIn | 用户要输入的代币数量 | 正向询价:给定输入,计算输出 |
| minAmountOut | 用户期望的最小输出代币数量 | 反向询价:给定期望输出,算法自动计算所需输入 |
请求参数示例(exactIn 模式):
{
"fromChain": "bnb",
"fromContract": "0x55d398326f99059ff775485246999027b3197955",
"toContract": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
"amount": "1",
"requestMode": "exactIn",
"fromAddress": "0xd8FeBD1C242a282f1b8226d34282942F6F63248b",
"toAddress": "0xd8FeBD1C242a282f1b8226d34282942F6F63248b",
"slippage": "0.5",
"feeRate": 0.003,
"deadline": 600
}请求参数示例(minAmountOut 模式):
{
"fromChain": "bnb",
"fromContract": "0x55d398326f99059ff775485246999027b3197955",
"toContract": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
"amount": "1",
"requestMode": "minAmountOut",
"fromAddress": "0xd8FeBD1C242a282f1b8226d34282942F6F63248b",
"toAddress": "0xd8FeBD1C242a282f1b8226d34282942F6F63248b",
"slippage": "0.5",
"feeRate": 0.003,
"deadline": 600
}响应说明:
| 参数名称 | 参数类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| status | number | 必须 | 请求码,0为成功 |
| data | object | 必须 | - |
| id | string | 必须 | 订单 ID |
| amountIn | string | 必须 | 输入金额 |
| expectedAmountOut | string | 必须 | 预期输出金额 |
| minAmountOut | string | 必须 | 最小输出金额 |
| priceImpact | string | 必须 | 价格影响百分比 |
| recommendSlippage | number | 必须 | 推荐滑点 |
| expiresAt | number | 必须 | 过期时间戳(unix 秒) |
| market | string | 必须 | 渠道名称 |
| txs | []object | 必须 | 交易列表 |
| fee | object | 必须 | 手续费详情 |
txs 数组元素:
| 参数名称 | 参数类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| chainId | number | 必须 | 链 ID |
| to | string | 必须 | 目标合约地址 |
| calldata | string | 必须 | 交易 calldata |
| function | string | 必须 | 函数名称 |
| gasLimit | string | 必须 | Gas 限制 |
| gasPrice | string | 必须 | Gas 价格 |
| nonce | number | 必须 | Nonce |
| value | string | 必须 | 交易金额 |
fee 对象:
| 参数名称 | 参数类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| totalAmountInUsd | string | 必须 | 总手续费(美元) |
| platformFee | object | 必须 | 平台手续费详情 |
| platformFee.amountInUsd | string | 必须 | 平台手续费(美元) |
| platformFee.items | []object | 必须 | 手续费明细 |
响应示例:
{
"status": 0,
"data": {
"id": "2dde9b1da4044957aec42e9e93416717",
"amountIn": "1",
"expectedAmountOut": "0.9969249606918065",
"minAmountOut": "0.9919403358883475",
"priceImpact": "0.25",
"recommendSlippage": 1,
"expiresAt": 1770620790,
"market": "bgwevmaggregator",
"txs": [
{
"chainId": 56,
"to": "0x6D0034c7DA87e8f0526b21aa890d40a77C755B68",
"calldata": "0xd984396a...",
"function": "swap",
"gasLimit": "752325",
"gasPrice": "0.0000000001875",
"nonce": 235,
"value": "0"
}
],
"fee": {
"totalAmountInUsd": "0.003",
"platformFee": {
"amountInUsd": "0.003",
"items": [
{
"token": {
"chain": "bnb",
"address": "0x55d398326f99059ff775485246999027b3197955",
"symbol": "USDT",
"decimals": 18
},
"amount": "0.003",
"amountInUsd": "0.003"
}
]
}
}
}
}MEV批量发送
请求路径: /bgw-pro/swapx/pro/send
请求方法: POST
请求参数:
| 参数名称 | 参数类型 | 是否必填 | 说明 |
|---|---|---|---|
| chain | string | 是 | 链名称,最大64字符 |
| txs | []object | 是 | 交易列表,最多100个 |
txs数组元素:
| 参数名称 | 参数类型 | 是否必填 | 说明 |
|---|---|---|---|
| id | string | 是 | 订单id,最大128字符 |
| chain | string | 是 | 链名称,最大64字符 |
| rawTx | string | 是 | 上链tx数据,最大8192字符 |
| from | string | 是 | 订单发送者地址,最大128字符 |
| nonce | number | 是 | nonce,最小值为0 |
| provider | string | 否 | 发送提供者,最大128字符 |
请求参数示例:
{
"chain": "bnb",
"txs": [
{
"id": "34bbf08b6ca5bb9d19e2b0e9715d82f6",
"chain": "bnb",
"rawTx": "0xabc...",
"from": "0xabc",
"nonce": 1,
"provider": ""
}
]
}响应说明:
| 参数名称 | 参数类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| status | number | 必须 | 请求码,0为成功 |
| data | []object | 必须 | - |
| id | string | 必须 | 订单id |
| txHash | string | 必须 | txHash |
| code | string | 非必须 | 响应码,0为成功 |
| message | string | 必须 | 错误说明 |
响应示例:
{
"status": 0,
"data": {
"result": [
{
"id": "34bbf08b6ca5bb9d19e2b0e9715d82f6",
"code": 0,
"txHash": "2T4UR7tsgiPQsJuEYMwu8wNzukdjzoLgqTNBQ1KgL13nX7CUTQeEkNz8sEiGA35fCvt7MCNsgRGohFLg9dg932jr"
}
]
}
}扩展阅读
Last updated on


