请求鉴权类型
- 每个函数都有自己的鉴权类型,鉴权类型决定了访问时应当进行何种鉴权。
- 鉴权类型会在本文档中各个函数名称旁声明。比如 下新的订单 (TRADE)。
- 如果没有特殊声明即默认为 NONE
鉴权类型 | API key | 签名 | 描述 |
---|---|---|---|
NONE | 公开市场数据 | ||
TRADE | required | required | 在交易所交易,下单和取消订单 |
USER_DATA | required | required | 私人账户信息,例如订单状态和交易历史 |
USER_STREAM | required | 管理用户数据流订阅 | |
MARKET_DATA | required | 历史市场数据访问 |
- 函数鉴权需要指定和验证有效的 API key。
- API key 可以在币安账户的 API 管理 页面创建。
- API key和密钥都是大小写敏感的。 切勿与任何人共享它们。 如果您发现您的账户有异常活动,请立即撤销所有keys并联系币安客服。
- API key 可以配置为仅允许访问某些类型的函数鉴权。
- 例如,可以拥有一个 API key 有
TRADE
的权限进行交易,同时使用另一个 API key 有USER_DATA
的权限来监控您的订单状态。 - 默认情况下,API key 不能
交易
。您需要先在 API 管理中开通交易权限。
- 例如,可以拥有一个 API key 有
TRADE
和USER_DATA
请求也称为SIGNED
请求。
SIGNED (TRADE 和 USER_DATA) 请求鉴权
- 为了授权请求,
SIGNED
请求必须带signature
参数。 - 请参考 签名请求示例(HMAC), 签名请求示例(RSA) 和 SIGNED 请求示例 (Ed25519) 理解如何计算签名。
时间同步安全
-
SIGNED
请求也必须发timestamp
参数,其值应当是请求发送时刻的 unix 时间戳(毫秒)。 -
还可以发送一个可选参数
recvWindow
,指定请求保持有效的时间。- 如果
recvWindow
未发送,默认为5000毫秒。 - 最大
recvWindow
为60000毫秒。
- 如果
-
请求处理逻辑:
if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow) {
// 处理请求
} else {
// 拒绝请求
}
关 于交易时效性 互联网状况并不完全稳定可靠,因此你的程序本地到币安服务器的时延会有抖动, 这是我们设置 recvWindow
的目所在。如果你从事高频交易,对交易时效性有较高的要求,可以灵活设置 recvWindow
以达到你的要求。
建议使用5000毫秒以下的 recvWindow
!
SIGNED 请求示例 (HMAC)
这是有关如何用 HMAC secret key 签署请求的分步指南。
示例 API key 和 secret key:
Key | Value |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
警告:请勿与任何人共享您的私钥。
示例密钥仅供参考。
请求示例:
{
"id": "4885f793-e5ad-4c3b-8f6c-55d891472b71",
"method": "order.place",
"params": {
"symbol": "BTCUSDT",
"side": "SELL",
"type": "LIMIT",
"timeInForce": "GTC",
"quantity": "0.01000000",
"price": "52000.00",
"newOrderRespType": "ACK",
"recvWindow": 100,
"timestamp": 1645423376532,
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "------ 未填写 ------"
}
}