意图交易solver求解#
POST /solve#
接收一场拍卖并返回一个或多个 Solution。
响应内容包含 Solver 所能找到的最佳 Solution 的目标值(Objective Value),但不包含 calldata。Autopilot 确定获胜者后,会调用 /settle 端点,通知获胜 Solver 执行其 Solution。
注意事项#
- Solver 应快速响应:多笔订单拍卖的响应时间需 ≤ 8 秒,单笔订单拍卖需 ≤ 2 秒。超时将视为放弃该轮拍卖(含网络延迟)。
- 对于同一个 Auction ID,Autopilot 最多只会调用此端点一次。
- 若某笔 RWA 单笔订单拍卖在第一轮未能被求解,该未解订单会与其他正常订单于下一轮一同批次处理。
http
curl -X POST 'https://your-api-endpoint.com/OKXDEX/intent/solve' \
-H 'Content-Type: application/json' \
-d '{
"auctionId": "16979924300771968",
"chainIndex": "1",
"deadline": "1773829092242",
"stressTest": true,
"settlementContract": "0x1a34e1e604d8a55405172c0717b17f7631d5f265",
"orders": [
{
"appDataHash": "0xb44dd4943b8f671e3e555b6e0fb8a882fd4c81d2bf2fbe27bf2bc76794d6f1ce",
"commissionInfos": [
{
"commissionType": "okx",
"feeDirection": true,
"feePercent": "3000000",
"referrerWalletAddress": "0x6ea08ca8f313d860808ef7431fc72c6fbcf4a72d",
"toB": false
},
{
"commissionType": "child",
"feeDirection": true,
"feePercent": "1000000",
"referrerWalletAddress": "0x2c825edb17c2c04983a481ebd2da2a39424c7cb7",
"toB": false
},
{
"commissionType": "parent",
"feeDirection": true,
"feePercent": "500000",
"referrerWalletAddress": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
"toB": false
}
],
"createTime": "1773828838",
"fromTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"fromTokenAmount": "1000000000000000",
"orderUid": "0xac46fe143af2afc7e3614f96cfcf660b0e680ca8d9d8f59591b63fbdc4a871413474fbbc6e43dcb0398e2eacbe1032cced80674269ba81ed",
"owner": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
"partiallyFillable": false,
"receiver": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
"signature": "0xabe06f2376cd977d47179be4b055df4b4ebb140d48e585c9f742019760fe02f02655eec2b87ae159c7e1a510dfe3524799504c1f6175c5c2cdff35d0ad54b6131c",
"signingScheme": "eip712",
"swapMode": "exactIn",
"toTokenAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"toTokenAmount": "2262246",
"validTo": "1773830637"
}
],
"tokens": [
{
"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"price": "2333.904192377223440889",
"decimals": "18",
"tags": ["RWA_ONDO","RWA"]
},
{
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"price": "0.99998",
"decimals": "6",
"tags": ["RWA_ONDO","RWA"]
}
]
}'
请求参数(SolveRequest)#
| 参数 | 类型 | 必填 | 说明 | 范例 |
|---|---|---|---|---|
| chainIndex | String | 是 | 链 ID | 1-eth |
| auctionId | String | 是 | 拍卖唯一 ID | 12345 |
| settlementContract | String | 是 | 用以结算此场拍卖的结算合约地址 | 0xabcd... |
| deadline | Timestamp | 是 | 期望获取响应的截止时间戳 | 172120120102 |
| stressTest | Boolean | 否 | 为 true 时表示压测订单,/solve 将跳过 Simulation 验证,直接于 solutions 返回结果 | true |
| orders | Array<Order> | 是 | 此场拍卖中可被求解的订单列表 | — |
| ┗ orderUid | String | 是 | 订单唯一标识码(56 bytes,0x 前缀十六进制) | 0x30cff40d...76a6 |
| ┗ owner | String | 是 | 订单拥有者地址 | 0x1234...5678 |
| ┗ fromTokenAddress | String | 是 | 卖出 Token 地址 | 0xa0b8...eb48 |
| ┗ toTokenAddress | String | 是 | 买入 Token 地址 | 0xdac1...1ec7 |
| ┗ fromTokenAmount | String | 是 | 卖出数量(以最小单位表示) | 1000000000 |
| ┗ toTokenAmount | String | 是 | 买入数量(以最小单位表示) | 990000000 |
| ┗ swapMode | String | 是 | 订单类型:exactIn / exactOut,目前 OKX 仅支持 exactIn | exactIn |
| ┗ partiallyFillable | Boolean | 是 | 是否允许部分成交,目前 OKX 不支持部分成交 | false |
| ┗ validTo | String | 是 | 订单到期时间(Unix 时间戳,秒) | 1737400518 |
| ┗ appDataHash | String | 是 | App data hash(32 bytes,0x 前缀十六进制) | 0x0000...0000 |
| ┗ signature | String | 是 | 签名(0x 前缀十六进制) | 0x1234... |
| ┗ signingScheme | String | 是 | 签名方式:eip712 / ethsign / presign / eip1271 | eip712 |
| ┗ receiver | String | 是 | 收款地址 | 0x1234...5678 |
| ┗ createTime | String | 是 | 订单创建时间(epoch 秒) | 1737396918 |
| ┗ commissionInfos | Array | 否 | 手续费信息列表 | — |
| ┗┗ feePercent | String | 是 | 最多支持 9 位小数;若超出位数,系统将自动向上取整 | 20000000 |
| ┗┗ feeAmount | String | 否 | 手续费金额 | 100000 |
| ┗┗ referrerWalletAddress | String | 是 | 手续费收款地址 | 0x1234... |
| ┗┗ feeDirection | Boolean | 是 | 收费方向:true = 从 fromToken 收取,false = 从 toToken 收取 | true |
| ┗┗ commissionType | String | 是 | 手续费类型:okx = OKX 平台费、parent = 上层节点分成、child = 下层节点分成 | okx |
| ┗┗ toB | Boolean | 是 | 订单类型:true = ToB、false = ToC | false |
| tokens | Array | 是 | 此场拍卖使用的 Token 数据(会包含 WETH 价格信息) | — |
| ┗ address | String | 是 | Token 地址 | 0x1234...5611 |
| ┗ price | String | 否 | 参考价格(以 USD 计价,最多支持 18 位小数),用于计算 Surplus | 1000000000000000000 |
| ┗ decimals | String | 否 | Token 小数位数 | 18 |
| ┗ tags | Array | 否 | Token 标签列表 | ["RWA_ONDO","RWA"] |
响应参数#
| 参数 | 类型 | 必填 | 说明 | 范例 |
|---|---|---|---|---|
| solutions | Array | 否 | Solution 列表 | — |
| ┗ solutionId | String | 是 | Solution 唯一标识码(仅需在当前拍卖中唯一,不需全局唯一)。必须为数字字符串,最大值为 2^63 - 1 | 1 |
| ┗ clearingPrices | Object | 是 | Token 地址至统一结算价格(扣除手续费前的价格)的对应表 | — |
| ┗ submissionAddress | String | 是 | 用于提交该 Solution 进行结算的地址 | 0xaFe9...3596 |
| ┗ orders | Array | 是 | Solver 此 Solution 中所包含的订单列表,包含 Solver 自身的 JIT 订单 | — |
| ┗┗ orderUid | String | 是 | 订单唯一标识码(56 bytes,0x 前缀十六进制) | 0xb91949...46e |
| ┗┗ swapMode | String | 是 | 订单类型:exactIn / exactOut | exactIn |
| ┗┗ fromTokenAddress | String | 是 | 卖出 Token 地址 | 0xc02a...6cc2 |
| ┗┗ toTokenAddress | String | 是 | 买入 Token 地址 | 0xdac1...1ec7 |
| ┗┗ fromTokenAmount | String | 是 | 允许卖出的最大数量 | 1750000000000000 |
| ┗┗ toTokenAmount | String | 是 | 允许买入的最小数量 | 3529500 |
| ┗┗ executedFromTokenAmount | String | 是 | 实际从用户钱包扣除的数量(含所有手续费) | 1750000000000000 |
| ┗┗ executedToTokenAmount | String | 是 | 用户实际收到的净数量(扣除所有手续费后) | 3694070 |
| ┗┗ solverFeeInfo | Object | 是 | Solver 手续费信息 | — |
| ┗┗┗ feePercent | String | 是 | 最多支持 9 位小数;若超出位数,系统将自动向上取整 | 0 |
| ┗┗┗ feeAmount | String | 是 | Solver 手续费金额 | 0 |
| ┗┗┗ solverAddress | String | 是 | Solver 手续费收款地址 | 0xaFe9...3596 |
| ┗┗┗ feeDirection | Boolean | 是 | 收费方向:true = 从 fromToken 收取,false = 从 toToken 收取 | false |
| ┗┗ surplusFeeInfo | Object | 否 | Surplus 手续费信息 | — |
| ┗┗┗ feePercent | String | 是 | Surplus 手续费百分比 | 0 |
| ┗┗┗ trimReceiver | String | 是 | Surplus 截留部分的接收地址 | 0xaFe9...3596 |
| ┗┗ commissionInfos | Array | 否 | 平台费与分润信息 | — |
| ┗┗┗ feePercent | String | 是 | 最多支持 9 位小数;若超出位数,系统将自动向上取整 | 3000000 |
| ┗┗┗ feeAmount | String | 是 | 手续费金额 | 11132 |
| ┗┗┗ referrerWalletAddress | String | 是 | 手续费收款地址 | 0x29e2...6925 |
| ┗┗┗ feeDirection | Boolean | 是 | 收费方向:true = 从 fromToken 收取,false = 从 toToken 收取 | false |
| ┗┗┗ commissionType | String | 是 | 手续费类型:okx = OKX 平台费、parent = 上层节点分成、child = 下层节点分成 | okx |
| ┗┗┗ toB | Boolean | 是 | 订单类型:true = ToB、false = ToC | false |
请求范例#
json
{
"auctionId": "16979924300771968",
"chainIndex": "1",
"deadline": "1773829092242",
"settlementContract": "0x1a34e1e604d8a55405172c0717b17f7631d5f265",
"orders": [
{
"appDataHash": "0xb44dd4943b8f671e3e555b6e0fb8a882fd4c81d2bf2fbe27bf2bc76794d6f1ce",
"commissionInfos": [
{
"commissionType": "okx",
"feeDirection": true,
"feePercent": "3000000",
"referrerWalletAddress": "0x6ea08ca8f313d860808ef7431fc72c6fbcf4a72d",
"toB": false
},
{
"commissionType": "child",
"feeDirection": true,
"feePercent": "1000000",
"referrerWalletAddress": "0x2c825edb17c2c04983a481ebd2da2a39424c7cb7",
"toB": false
},
{
"commissionType": "parent",
"feeDirection": true,
"feePercent": "500000",
"referrerWalletAddress": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
"toB": false
}
],
"createTime": "1773828838",
"fromTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"fromTokenAmount": "1000000000000000",
"orderUid": "0xac46fe143af2afc7e3614f96cfcf660b0e680ca8d9d8f59591b63fbdc4a871413474fbbc6e43dcb0398e2eacbe1032cced80674269ba81ed",
"owner": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
"partiallyFillable": false,
"receiver": "0x3474fbbc6e43dcb0398e2eacbe1032cced806742",
"signature": "0xabe06f2376cd977d47179be4b055df4b4ebb140d48e585c9f742019760fe02f02655eec2b87ae159c7e1a510dfe3524799504c1f6175c5c2cdff35d0ad54b6131c",
"signingScheme": "eip712",
"swapMode": "exactIn",
"toTokenAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"toTokenAmount": "2262246",
"validTo": "1773830637"
}
],
"tokens": [
{
"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"price": "2333.904192377223440889",
"decimals": "18",
"tags": ["RWA_ONDO", "RWA"]
},
{
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"price": "0.99998",
"decimals": "6",
"tags": ["RWA_ONDO", "RWA"]
}
]
}
响应范例#
json
{
"code": 0,
"msg": "success",
"data": {
"solutions": [
{
"solutionId": "1",
"clearingPrices": {
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": "471600415.188469753892516323455589889089688117",
"0xdac17f958d2ee523a2206206994597c13d831ec7": "1"
},
"submissionAddress": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596",
"orders": [
{
"orderUid": "0xb919490fe85e27523f1732fcf09dc398a89deea8f7d9c5fb170cd4f6d6d3bbb729e27c8e9979b9879de65955f172f3623644692569abc46e",
"swapMode": "exactIn",
"fromTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"toTokenAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"fromTokenAmount": "1750000000000000",
"toTokenAmount": "3529500",
"executedFromTokenAmount": "1750000000000000",
"executedToTokenAmount": "3694070",
"solverFeeInfo": {
"feeAmount": "0",
"feePercent": "0",
"feeDirection": false,
"solverAddress": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
},
"surplusFeeInfo": {
"feePercent": "0",
"trimReceiver": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
},
"commissionInfos": [
{
"referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
"feeAmount": "11132",
"feePercent": "3000000",
"toB": false,
"feeDirection": false,
"commissionType": "okx"
},
{
"referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
"feeAmount": "3710",
"feePercent": "1000000",
"toB": false,
"feeDirection": false,
"commissionType": "child"
},
{
"referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
"feeAmount": "1855",
"feePercent": "500000",
"toB": false,
"feeDirection": false,
"commissionType": "parent"
}
]
},
{
"orderUid": "0xe2f6bd4af8ca930b391f321d8ec9d6f772748060aa4bf9b9576d97361af7724f29e27c8e9979b9879de65955f172f3623644692569abc471",
"swapMode": "exactIn",
"fromTokenAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"toTokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"fromTokenAmount": "5000000",
"toTokenAmount": "2340413279781192",
"executedFromTokenAmount": "5000000",
"executedToTokenAmount": "2347391066600608",
"solverFeeInfo": {
"feeAmount": "0",
"feePercent": "0",
"feeDirection": true,
"solverAddress": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
},
"surplusFeeInfo": {
"feePercent": "0",
"trimReceiver": "0xaFe9d55A5a4e90bBBabBa0327BF72196B5683596"
},
"commissionInfos": [
{
"referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
"feeAmount": "15000",
"feePercent": "3000000",
"toB": false,
"feeDirection": true,
"commissionType": "okx"
},
{
"referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
"feeAmount": "5000",
"feePercent": "1000000",
"toB": false,
"feeDirection": true,
"commissionType": "child"
},
{
"referrerWalletAddress": "0x29e27c8e9979b9879de65955f172f36236446925",
"feeAmount": "2500",
"feePercent": "500000",
"toB": false,
"feeDirection": true,
"commissionType": "parent"
}
]
}
]
}
]
}
}
