创建意图订单#
向 OKX DEX 意图协议提交一笔已签名的意图订单。调用本接口前,需先通过 获取兑换价格 接口以 mode=intent 或 mode=auto 获取报价,再使用用户钱包对返回的 signData 对象进行 EIP-712 签名。
请求地址#
POST
https://web3.okx.com/api/v6/dex/aggregator/intent/create-order请求参数#
| 参数 | 类型 | 必传 | 描述 |
|---|---|---|---|
| chainIndex | String | 是 | 链的唯一标识。如 1:Ethereum,更多可查看这里。 |
| fromTokenAddress | String | 是 | 卖出币种合约地址。须与报价返回的 signData.message.fromTokenAddress 保持一致。 |
| toTokenAddress | String | 是 | 买入币种合约地址。须与报价返回的 signData.message.toTokenAddress 保持一致。 |
| fromTokenAmount | String | 是 | 卖出数量(最小精度单位)。须与报价返回的 signData.message.fromTokenAmount 保持一致。 |
| toTokenAmount | String | 是 | 最小买入数量(最小精度单位)。由报价返回的 signData.message.toTokenAmount 结合滑点计算得出。 |
| userWalletAddress | String | 是 | 下单钱包地址,须与报价返回的 signData.message.owner 保持一致。 |
| validTo | Integer | 是 | 订单过期的 Unix 时间戳(秒)。须与报价返回的 signData.message.validTo 保持一致。 |
| swapReceiverAddress | String | 否 | 接收输出代币的钱包地址。若不传则默认使用 userWalletAddress。须与报价返回的 signData.message.receiver 保持一致。 |
| quoteId | String | 是 | 获取兑换价格 接口返回的唯一报价标识。 |
| appData | String | 是 | 须与报价返回的 signData.message.appData 字段的值,保持一致。 |
| signature | String | 是 | 用户私钥对报价返回的 signData 对象进行 EIP-712 签名后的结果。 |
| commissionInfos | Array | 否 | 分佣配置列表,每项定义一个收佣地址及对应费率。使用报价响应中 signData.message.commissionInfos 的值。 |
| feePercent | String | 否 | 费率,数值 × 10^9。如 30000000 表示 0.3%,须与报价返回的值保持一致。 |
| referrerWalletAddress | String | 否 | 接收分佣的钱包地址,须与报价返回的值保持一致。 |
| flag | String | 否 | 编码费用路由规则的位图,包含代币方向(fromToken 或 toToken)及其他约束条件。使用报价响应中 signData.message.commissionInfos[].flag 的值。 |
响应参数#
| 参数 | 类型 | 描述 |
|---|---|---|
| orderUid | String | 成功创建的意图订单唯一标识。可用此 ID 查询订单状态或发起取消操作。 |
请求示例#
shell
curl --location --request POST 'https://web3.okx.com/api/v6/dex/aggregator/intent/create-order' \
--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' \
--header 'Content-Type: application/json' \
--data-raw '{
"chainIndex": "1",
"fromTokenAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"toTokenAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"fromTokenAmount": "100000",
"toTokenAmount": "95432",
"userWalletAddress": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
"validTo": 1893456000,
"swapReceiverAddress": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
"quoteId": "10000000000000001",
"appData": "0xa1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
"signature": "0x1234567890abcdef...",
"commissionInfos": [
{
"feePercent": "30000000",
"flag": "86412300000000000000000000000000000000000000000000000000000000000000",
"referrerWalletAddress": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
},
{
"feePercent": "10000000",
"flag": "86567800000000000000000000000000000000000000000000000000000000000000",
"referrerWalletAddress": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
}
]
}'
响应示例#
json
{
"code": "0",
"data": [
{
"orderUid": "0xa1b2c3d4e5f6789012345678901234567890123456789012345678901234567890ab"
}
],
"msg": ""
}
