API 密钥是怎么回事
交易所账户有两扇门。一扇是你的登录:密码、二次验证码、手机上的 App。另一扇是 API,给程序用的门。机器人从来不需要第一扇门。它用的是 API 密钥:一份你在交易所单独创建的凭证,只能做你允许的事,而且你随时可以删除它。
API 密钥是什么
密钥是交易所为某一个程序签发的一组凭证。
- API Key 是公开的名字,告诉交易所是哪把密钥在调用。
- Secret 用来给每一次请求签名。交易所会校验签名,没有 Secret 的请求一律拒绝。它只在创建时显示一次。
- 欧易还有一个口令(Passphrase),由你自己设定,在 A9 上还要再填一次。
- 币安也接受你自己生成的密钥对(Ed25519):公钥那一半粘贴到币安,私钥那一半就是 Secret。A9 的密钥页可以替你生成这对密钥。
密钥不是你的登录。它改不了你的密码、邮箱或安全设置,也看不到交易所没有通过 API 开放的任何东西。
A9 要的权限,和它拒绝的那一项
创建密钥时,交易所会列出一组权限。A9 只需要这几项。
- 读取:余额、挂单和持仓,让机器人能把账户和它自己认为的持仓对上。
- 交易:下单和撤单。在币安上是「现货及杠杆交易」那一项。
- 合约:只有开启了做空的机器人需要,因为做空是在你合约账户的永续合约上下单。币安有单独的勾选项;欧易的交易权限同时覆盖两者。
- 提币:永远不要。你保存密钥时 A9 会读取它的权限,每个实盘机器人启动前还会再读一次,能提币的密钥会被拒绝。
为什么永远不需要提币权限
A9 是非托管的。它只在你的账户里下单,别的什么都不做:不在你的账户之间转移资金,也从不把钱转到任何地方。套餐费用由你自己转账支付。所以 A9 没有任何一件事需要提币,而一把没有提币权限的密钥,也不可能被诱导去提币。即使一把只能交易的密钥被盗,最坏也只能在你自己的账户里交易。这仍然是风险,IP 列表就是用来堵上它的。
IP 列表,以及密钥存在哪里
交易所允许你把密钥限定在指定的网络地址上。来自其他地址的请求,即使 Secret 正确,也会被拒绝。
A9 的服务器所有请求都从一个固定网段发出:4.144.67.208/28,共 16 个地址。A9 会保持这个网段不变,免得你的密钥突然失效。两家交易所的填写方式不同。
- 欧易接受整段,写成一项。
- 币安需要把 16 个地址逐个写出,用空格分开。
A9 的密钥页为每家交易所准备好了可以直接粘贴的那一行,不需要手动输入。
设好列表之后,密钥的副本在任何其他机器上都没用。交易所对没有 IP 列表的密钥也更警惕:例如欧易会删除有交易权限、却没有绑定 IP、一段时间未使用的密钥。
在 A9 上,Secret 先加密再存储,只在给请求签名时才解密。它不会再次显示,不会写进日志,保存之后也不会再发送到你的浏览器。新密钥保存时,密钥页会立即检查:权限、IP 列表,以及合约账户是否处于做空机器人需要的单向持仓模式。
怎样切断访问
你随时可以结束 A9 的访问。如果有机器人在运行,顺序很重要。
- 先在 A9 上停止使用这把密钥的机器人。机器人有持仓时,停止会问你是卖出还是留在账户里。如果先删密钥,就没有这个选择了:仓位留在交易所上,无人管理。
- 在交易所删除密钥。立即生效:任何机器人都无法再用它下单。
- 在 A9 的密钥页移除这把密钥,避免再有程序尝试使用它。
如果只是想暂停交易,在 A9 上暂停机器人即可:仓位保留,挂单撤销,密钥可以留着。
一份简短的清单
- 读取和交易开启。只有要做空的机器人才开合约。提币关闭。
- IP 列表设为 A9 那一行,从密钥页复制。
- Secret 只粘贴一次到 A9,别处不留。
- 做空机器人:合约账户设为单向持仓模式。