给 AI 交易机器人用的币安 API 密钥别开提现权限
交给 AI 交易机器人的币安 API 密钥,读取权限照开,交易权限按机器人要做的事开,提现权限不开。币安帮助中心的规定是:「要启用提现权限,必须添加 IP 访问(IPv4 格式)限制。」在默认安全控制开启的情况下,系统生成的 HMAC 密钥如果不加 IP 限制,除了读取什么权限都没有。
安不安全,取决于这把密钥能做什么、能从哪台机器上用、交出去以后存在哪里。币安学院《一文读懂 API 密钥与安全类型》提醒,密钥一旦泄露,他人便可通过 API 获得对账户的完全访问权限;把权限限制在最低必要范围,能在密钥不慎泄露时降低风险。
本文只讲自己创建 API 密钥、交给第三方工具或自己写的 AI 脚本这一种接法,币安自家的 Ai Pro 不在其中。
给 AI 交易机器人只勾读取和要用的交易权限
币安的 API 权限选项里,和交易机器人有关的是下面几项。原则是只开特定需求所必需的操作权限,不同的权限组合用不同的密钥。
| 权限选项 | 能做 | 不能做 | 给 AI 机器人时 |
|---|---|---|---|
| 启用读取 | 只发获取类请求:看账户信息、余额、交易历史 | 下单,以及任何改变账户状态的操作 | 照开;只让 AI 看持仓、做复盘,开这一项就够 |
| 启用现货和杠杆交易 | 在现货(及杠杆)市场下单、执行各类交易操作 | 借款还款、账户间划转、提币,这几项各有单独的选项 | 要让 AI 下现货单才开 |
| 启用杠杆借贷、还款与转账 | 在杠杆交易里借款、还款和划转 | 提币到外部地址,那归提现权限管 | 不打算让 AI 借钱加杠杆就不开 |
| 允许万向划转 | 在自己账户的不同账户类型之间划转,例如从现货账户划到 U 本位合约账户 | 把资产转到外部地址,那归提现权限管 | 机器人用不着挪资金就不开 |
| 启用提现 | 通过 API 把资产提走 | 不加 IPv4 格式的 IP 访问限制就开不了 | 不开 |
| 启用交易对白名单 | 把密钥能操作的交易对限定在名单内,例如只允许 BTC/USDT | 名单以外的交易对,这把密钥操作不了 | 机器人只做固定几个交易对时用上 |
有两条限制要记住。默认安全控制开启时,系统生成的 HMAC 密钥如果没加 IP 限制,表里除了读取,别的权限都开不了。想开提现,必须先加 IPv4 格式的 IP 访问限制。
只读看板不需要交易或提现权限,交易机器人只需现货或合约交易权限,无需提现权限。用途不同就分开建:只让 AI 读持仓、写复盘或做行情提醒的,建一把只读密钥;让它真下单的,另建一把带交易权限的。AI 替人盯盘、下单能走到哪一步,GPT-5.6 盯盘和自动交易的分析里拆得更细。
系统生成的币安 API 密钥不绑 IP 为什么只能读取
《如何在币安创建API密钥》英文版写的是,为遵守最新行业要求,币安更新了 API 服务:2023 年 1 月 30 日 00:00(UTC)起,系统生成的 API 密钥如果 IP 不受限制,权限只能设为读取。没有定义适当的 IP 访问限制时,也不该为密钥启用读取以外的权限。
想开读取以外的权限,有三种做法:添加 IP 访问(IPv4 格式)限制;改用自行生成的密钥(Ed25519 或 RSA);或者禁用默认安全控制措施。第三种等于把这层保护拆掉,给 AI 机器人用的密钥犯不上。受密码保护的 Ed25519 密钥,再加上把使用范围限制在特定 IP 地址,是更稳妥的组合。
提现权限不交给机器人:哪个 AI 工具要求你给密钥开提现,这个工具就别接。
IP 白名单里填哪个地址
填发出 API 请求的那台机器的公网 IPv4 地址。机器人跑在自己的电脑或服务器上,就查这台机器的公网 IP:用 ipify 这类网站或命令行查到公共 IP,复制后粘贴到「只允许访问受信任的 IP」那一项。工具跑在别人的服务器上,IP 得由工具方提供;给不出来的,在默认安全控制开启时,系统生成的密钥就只能停在读取权限。
币安 API 管理在哪里,给机器人的新密钥怎么设
网页端的入口是:登录后点个人资料图标,进【账户】,在【API管理】下点【创建API】。App 端进币安专业版,点【更多】打开【服务】面板,往下到【其他】部分点【API 管理】,再点【创建 API】。创建前要先开好双重身份验证(2FA)、往现货钱包充值任意金额激活账户、完成身份认证。建的时候选密钥类型、填标签或名称,最后过一遍双重身份验证。
密钥建好、还没交出去之前,逐项看一遍:
- 标签直接写工具的名字。以后列表里有好几把密钥,一眼能认出哪把给了谁。
- 权限只留读取和确实要用的交易权限;提现不勾,万向划转、杠杆借贷用不上也不勾。
- IP 访问限制填上一节查到的公网 IPv4,不留空。
- 机器人只做固定交易对的,打开交易对白名单,把范围收窄。
- 只想拿一部分资金给机器人试,可以用子账户:给账户授予有限资源的访问权限,正是子账户适用的场景之一。
- 系统生成的密钥给的是两个:API 密钥和加密密钥(Secret Key)。两个都不写进源代码,也不提交到代码库;交给程序时怎么存,看下面这一节。
API 密钥和私钥交给程序以后存在哪里
币安学院强烈建议:API 密钥、加密密钥和私钥都不要以明文形式存放在任何地方。同一篇文章里也给了配置文件和环境变量两种存法。两句话并不矛盾,因为常说的几种做法各管一层,哪一层都替代不了别的:
- 私钥加密或加口令:用自行生成的密钥时,币安强烈推荐 Ed25519 私钥配一个口令(passphrase),没有口令,私钥文件拿到手也用不了。这一层管的是「文件落到别人手里还能不能用」。系统生成的 HMAC 密钥没有这一层,官方的提醒是定期更换,不明文存放,不硬编码进代码。
- 运行时注入:环境变量里的值,由外部在程序启动时取出来再交给程序,官方示例是先跑一个取口令的脚本,把结果放进环境变量,再启动程序。这一层管的是「源代码里不出现密钥」。
- 文件权限:配置文件和私钥文件的读取权限只留给运行机器人的那个系统账户。这一层管的是「同一台机器上别的系统账户不能随手打开这些文件」;文件权限替代不了私钥口令。
.gitignore或放在项目目录外:配置文件不被 Git 跟踪,只解决「不进代码仓库」。文件本身还是明文,被人拷走照样能读,不能当成加密。
官方也建议在程序里写私钥文件的路径,而不是把密钥内容直接嵌进代码,API 密钥和加密密钥照此处理。
API 密钥泄露或工具停用后删掉重建
没开提现,不等于密钥丢了就没有损失。举个假设场景:你用自行生成的 Ed25519 密钥接了一个交易机器人,开了读取和现货交易,没开提现,也没绑 IP;私钥文件没设口令,跟配置一起被传到了公开的代码库。拿到的人提不走币,却能用这把密钥在现货市场随意下单,反复买卖、在冷门交易对上高买低卖,亏掉的是你账户里的钱。就算绑了 IP,运行机器人的那台服务器本身被人控制,结果也一样。
碰上这种情况,或者只是怀疑密钥泄露(比如不小心提交到了 Git 库),按币安学院给的做法马上处理:
- 在币安 API 管理里删掉这把密钥,再新建一把。
- 核对账户有没有未经授权的操作,委托和成交记录都翻一遍。
- 新密钥启用 IP 限制。
- 新密钥别再存回先前泄露的那个位置。
事前能做的是把一把密钥出事时的影响范围收窄:
- 交易对白名单只放机器人要做的那几个交易对,名单以外的交易对这把密钥碰不到。
- IP 白名单只放行运行机器人那台机器的公网 IPv4,白名单以外的地址拿这把密钥发请求会被拒。它限制的是请求从哪个 IP 来,不是绑定某一台设备,怀疑泄露时照样要删掉旧密钥重新生成。
- 不同用途用不同的密钥:只读的看板、下单的机器人各用一把,哪把出事删哪把,不牵连别的。
- 自行生成的私钥加上口令,文件被拿走也用不了。
没出事也要换:定期生成新密钥、移除旧密钥,理想情况下每月或更频繁地更换一次。停用某个 AI 工具、或换了别的工具时,把给它的那把密钥一并删掉。列表里认不出来历的密钥,先对照标签想清楚是不是自己别的程序在用;删掉以后,所有用这把密钥的程序都会连不上。
币安 API 密钥贴出去安不安全、开不了合约权限怎么办
把币安 API 密钥贴进 ChatGPT 对话框安全吗?
不建议贴。贴进去,密钥就以明文留在对话记录里,而 API 密钥、加密密钥和私钥都不该以明文形式存储在任何地方。已经贴过的,按疑似泄露处理:在 API 管理里删掉这把密钥、生成新的,同时查账户有没有未经授权的活动。
只开了读取权限的 API 密钥被别人拿到会怎样?
对方能看到账户信息、余额和交易历史这类数据。读取权限只允许获取账户信息的请求,无法下单或改变账户状态,但账户情况已经外露,照样按泄露处理:删掉这把密钥,重新生成一把。
为什么新建的币安 API 密钥开不了合约交易权限?
有两种情况会这样:API 密钥是在启用合约账户之前创建的,或者账户已经开通了统一账户。符合其中一种,这把密钥就无法启用合约交易权限。