Skip to Content
Zh CnDocs指令模式 API

指令模式 API

概述

  1. 接入时提前协定商家代码,通过header传入:Partner-Code;
  2. 目前支持的链:ETH, SOL, BNB chain, Base, Polygon, Arbitrum, Morph,其它链的接入需要提前告知;
  3. 交易手续费:
    • 目前支持的手续费方式为代收,按周期结算;
    • 自定义收费地址正在建设中;

HTTP状态码定义

状态码说明
200success
400Bad Request
403Forbidden(未加白名单或者是签名错误)
429Too many requests(被限频)

询价接口

请求路径: /bgw-pro/swapx/pro/quote

请求方法: POST

请求参数:

字段名字段类型是否必传字段说明
fromSymbolstring源代币名称
fromContractstring源代币合约地址,主链币传空字符串
fromAmountstring询价金额(input amount)
fromChainstring源链
toSymbolstring目标代币名称
toContractstring目标代币合约地址,主链币传空字符串
toChainstring目标链
fromAddressstring扣款地址,预估gas会用到,若不传则使用默认地址进行预估Gas
estimateGasbool是否估算gas,默认false,需和fromAddress搭配使用
marketstring指定询价渠道,例如uniswap.v3,pancakeswap。默认则使用所有支持的market
feeRatenumber千分位的手续费率,默认使用渠道配置的手续费率,免手续费则传0
solMaxAccountsnumber最大账户数,默认无限制,只适用于SOL链(限制账户数会影响价格优势)

请求参数示例:

{ "fromSymbol": "USDT", "fromContract": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "fromAmount": "1", "fromChain": "sol", "toSymbol": "USDC", "fromAddress": "ApPjjUmJuraNuFZ2n41TBzdshd3pmDEQvH6hFukQ1Yv2", "toChain": "sol", "toContract": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "estimateGas": true, "skipCache": true }

响应说明:

参数名称参数类型是否必填参数说明
statusnumber必须请求码,0为成功
dataobject必须-
toAmountstring必须输出数量
marketstring必须渠道名称
estimateRevertbool必须链标识
slippagestring必须滑点
computeUnitsnumber非必须sol链tx compute unit消耗
gasLimitnumber非必须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

请求参数:

字段名字段类型是否必传字段说明
fromSymbolstring源代币名称
fromContractstring源代币合约地址,主链币传空字符串
fromAmountstring卖出数量(input amount)
fromChainstring源链
toSymbolstring目标代币名称
toContractstring目标代币合约地址,主链币传空字符串
toChainstring目标链
toMinAmountstring最小收到数量,不传则使用滑点计算得到
fromAddressstring扣款地址
toAddressstring收款地址
slippagenumber滑点,单位为百分比(如传1表示1%),默认使用系统配置的滑点
marketstring询价接口返回的最优渠道
feeRatenumber基于千分位手续费率,默认使用渠道配置的手续费率,免手续费则传0
executorAddressstring执行合约地址,如果不用fromAddress发起交易,则需要传入执行合约地址
solMaxAccountsnumber最大账户数,默认无限制,只适用于SOL链
feePayerstring手续费支付地址,默认使用fromAddress支付SOL链的账户创建费用
deadlinenumber交易过期时间,单位秒,默认600秒
protocolsstring协议列表,默认使用所有支持的协议
requestModstring请求模式,可选值为 “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" }

响应说明:

参数名称参数类型是否必填参数说明
statusnumber必须请求码,0为成功
dataobject必须-
idstring必须订单id
marketstring必须渠道名称
contractstring非必须合约地址,EVM链会返回对应合约地址
calldatastring必须calldata
deadlinenumber必须订单超时时间(秒)
computeUnitsnumber非必须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

请求参数:

字段名字段类型是否必传默认值字段说明
fromChainstring-链标识,如 solethbnbbase
fromContractstring-源代币合约地址(主链币传空字符串 ""
toContractstring-目标代币合约地址(主链币传空字符串 ""
amountstring-金额(精度为代币 decimals),含义取决于 requestMode
requestModestring-请求模式,可选值:exactIn / minAmountOut
fromAddressstring-用户钱包地址(扣款地址),长度 1-256
toAddressstring-收款地址,长度 1-256
slippagestring"0.5"滑点容忍度百分比(如 "0.5" 表示 0.5%)
feeRatefloat64-手续费率(千分位),必须 ≥ 0
deadlineint600交易过期时间(秒)
executorAddressstring-执行合约地址(非 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 }

响应说明:

参数名称参数类型是否必填参数说明
statusnumber必须请求码,0为成功
dataobject必须-
idstring必须订单 ID
amountInstring必须输入金额
expectedAmountOutstring必须预期输出金额
minAmountOutstring必须最小输出金额
priceImpactstring必须价格影响百分比
recommendSlippagenumber必须推荐滑点
expiresAtnumber必须过期时间戳(unix 秒)
marketstring必须渠道名称
txs[]object必须交易列表
feeobject必须手续费详情

txs 数组元素:

参数名称参数类型是否必填参数说明
chainIdnumber必须链 ID
tostring必须目标合约地址
calldatastring必须交易 calldata
functionstring必须函数名称
gasLimitstring必须Gas 限制
gasPricestring必须Gas 价格
noncenumber必须Nonce
valuestring必须交易金额

fee 对象:

参数名称参数类型是否必填参数说明
totalAmountInUsdstring必须总手续费(美元)
platformFeeobject必须平台手续费详情
platformFee.amountInUsdstring必须平台手续费(美元)
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

请求参数:

参数名称参数类型是否必填说明
chainstring链名称,最大64字符
txs[]object交易列表,最多100个

txs数组元素:

参数名称参数类型是否必填说明
idstring订单id,最大128字符
chainstring链名称,最大64字符
rawTxstring上链tx数据,最大8192字符
fromstring订单发送者地址,最大128字符
noncenumbernonce,最小值为0
providerstring发送提供者,最大128字符

请求参数示例:

{ "chain": "bnb", "txs": [ { "id": "34bbf08b6ca5bb9d19e2b0e9715d82f6", "chain": "bnb", "rawTx": "0xabc...", "from": "0xabc", "nonce": 1, "provider": "" } ] }

响应说明:

参数名称参数类型是否必填参数说明
statusnumber必须请求码,0为成功
data[]object必须-
idstring必须订单id
txHashstring必须txHash
codestring非必须响应码,0为成功
messagestring必须错误说明

响应示例:

{ "status": 0, "data": { "result": [ { "id": "34bbf08b6ca5bb9d19e2b0e9715d82f6", "code": 0, "txHash": "2T4UR7tsgiPQsJuEYMwu8wNzukdjzoLgqTNBQ1KgL13nX7CUTQeEkNz8sEiGA35fCvt7MCNsgRGohFLg9dg932jr" } ] } }

扩展阅读

Last updated on