非托管交易机器人的
API 密钥权限检查清单
任何自动化交易工具——包括我们自己的——迟早都会让你提供交易所 API 密钥。真正决定你风险大小的问题,从来不是选哪个工具,而是你给那把密钥开了哪些权限。只给任务真正需要的权限,密钥泄露顶多是麻烦一场;权限开得比需要的宽,那就是完全不同等级的问题了。
有个概念值得说清楚:非托管工具拿到的密钥,让它能代你下单,但不会拿走你资产的持有权——这个区别是真实存在的,而且很重要。但这个区别,只有在密钥权限开得足够窄时才成立。一旦这把密钥也开了提币权限,「代你下单的权限」跟「你资产的访问权」之间的界线就模糊了很多——因为不管密钥有没有泄露,握有它的人现在都能直接把资金转走。
10 家交易所,逐一对照官方文档
下面这张表只放真正会影响你风险大小的四件事:可勾选的权限种类、交易与提币能否分开、IP 白名单是强制还是可选,以及如果你两者都没设置,密钥会怎样。所有内容都来自各交易所自己的帮助中心、开发者文档或公告;查不到官方明文的地方,表格直接写「官方未明确说明」,不用其他家的做法去类推。
| 交易所 | 可勾选的权限 | 交易 / 提币能否分离 | IP 白名单 | 自动到期规则 |
|---|---|---|---|---|
| Binance | Read(读取)· Spot & Margin Trading(现货/杠杆交易)· Futures(合约)· Withdrawals(提币)(另有 Ed25519/RSA 非对称密钥选项) | 可以——没有 IP 白名单的话,提币功能连发起都做不到 | 开提币权限就必须设置;其余非强制 | 没设 IP 白名单的密钥,闲置 30 天后会被删除(官方博客);绑定了 IP 的密钥不受此规则影响 |
| OKX | Read · Trade · Withdraw(另有 Transfer / Loan / Earn,仅限特定资格账户) | 可以 | 可选,单个密钥最多可绑 20 个 IP/CIDR | 有交易或提币权限、没绑 IP 的密钥,闲置 14 天后自动删除 |
| Bybit | Read-Only(默认)· Trade · Assets(Account Transfer / Subaccount Transfer / Withdrawal) | 可以 | 可选 | 没绑 IP 的密钥 90 天后到期(官方文档);可通过重新保存 IP 设置来重置 |
| Bitget | Read-Only · Trade · Transfer · Withdraw | 可以 | 开 Withdraw 就必须绑定;其余官方「强烈建议」但非强制 | 查不到官方明文的到期机制 |
| Gate.io | 只有 Read and Write / Read Only 二选一,没有更细的分类 | 不行——Read and Write 把交易与提币绑在一起,没有中间选项 | 可选 | 没绑 IP 的密钥有效期 90 天(官方文档) |
| BingX | Spot trading(现货)· Perpetual Futures trading(永续合约)· universal transfer(全能划转)· subaccount management(子账户管理)· withdrawal(提币) | 可以 | 开提币权限就必须绑 IP;单个密钥最多可绑 20 个 IP | 没绑 IP、有交易/划转/子账户管理权限的密钥,闲置 14 天后自动删除;绑定 IP 或纯只读的密钥不受此限 |
| Hyperliquid(DEX) | 没有勾选式菜单——由主钱包签署一笔「ApproveAgent」操作,授权另一个 API/Agent Wallet | 架构上是分离的,但不是靠勾选——见下方说明 | 不适用——官方文档完全没有 IP 白名单这个概念 | Agent Wallet 会在被新授权替换、或账户已无资金时被「清除(pruned)」;官方没有公布固定天数 |
| KuCoin | General · Spot · Margin · Futures · Earn · Withdrawal · FlexTransfers · LeadtradeFutures · Unified | 可以 | 开 Withdrawal 或 FlexTransfers 就必须绑定 | 查不到官方明文的到期机制 |
| MEXC | 业内常描述为 Read Only / Spot Trading / Futures Trading / Withdrawal 四类(确切界面文字本次未能逐字核对,中等可信) | 推测可以,中等可信——官方用语暗示「trading permission」是可独立识别的一种权限,但没有逐字说明能否完全独立分开 | 建议设置,最多可绑 4 个 IP;非强制 | 每把密钥都是 90 天,跟有没有绑 IP 无关(官方公告);只能在到期前 5 天内续期 |
| Kraken | 细分权限清单,包含 Query Funds、Create & Modify Orders、Cancel/Close Orders、Withdraw Funds、Export Data、Access WebSocket API 等 | 可以——10 家里粒度最细,官方自己的使用场景对照表显示,纯算法交易的密钥完全不需要提币权限 | 可选——创建密钥时自行决定要不要开,非默认项 | 可选——「Key Expiration」要自己打开才会生效;不开的话没有强制的默认到期时间 |
核实时间 2026-07-22,依各交易所自己的帮助中心、开发者文档或公告核对。交易所政策会在没有太多预告的情况下变动——请把这份表格当作某个时间点的快照,实际设置前务必再查一次交易所现行的官方页面。
三个值得放慢脚步看的差异
上面表格大部分都符合直觉:读取、交易、提币是各自独立的开关,IP 白名单是降低风险的选项。但有三家交易所打破了这个常见模式,如果你习惯了另一家的做法,很容易看漏。
Gate.io:没有「只交易不提币」的选项
Gate.io 官方 API 文档(2026-07-06 更新)讲得很清楚:API 密钥只有Read and Write或Read Only二选一,没有中间选项。一把能下单的密钥,同时也能发起提币——这个权限模型把两者绑在一起,没办法只给其中一个。
这里要讲精确一点:这是在描述 Gate.io 权限模型的结构长什么样,不是在评价 Gate.io 这家交易所安不安全。Gate.io 在 API 权限之外另外有自己的提币防护——提币只能提到「已手动提过的地址」,且新增地址后有 24 小时冷却期。但就 API 密钥这个层面来说,如果你要把 Gate.io 的密钥接给任何交易工具,「关掉提币就好」这个常见建议在这里用不上——这也让 IP 白名单和交易所自己的提币地址管控,变得更重要。
Kraken:不主动设置就永远不会到期
表格里其他有到期规则的交易所,都是把它做成「默认强制」——没设 IP 白名单,密钥就会按时钟到期,不管你有没有要求。Kraken 不是这样运作的。「IP Address Restriction」跟「Key Expiration」都是创建密钥时你自己选择要不要开的设置项。两个都不开的话——根据 Kraken 官方支持文档——这把密钥就是不会到期。
如果你的心理模型是「反正交易所到时候会帮我让密钥到期,不用自己管」,这个假设在 Kraken 身上是错的。Kraken 把这个决定权完全交给你自己。
Hyperliquid:一笔钱包签名,不是一把密钥
Hyperliquid 是永续合约 DEX,根本不发传统意义上的 API 密钥。取而代之的是,你的主钱包签署一笔ApproveAgent操作,授权另一个API Wallet(Hyperliquid 官方文档里也称作 Agent Wallet)代表你签署后续的交易操作。一个账户可以有 1 个未命名的 API Wallet,加上最多 3 个命名的 API Wallet。
这里需要谨慎地加上但书。Hyperliquid 的官方文档描述了两套不同的签名机制:sign_l1_action用于下单、撤单这类操作,sign_user_signed_action用于提币、授权新 agent 这类操作。根据这个区分,加上 Hyperliquid 官方 SDK 的实际行为,Agent/API Wallet 看起来只能签署第一类操作——也就是说它能拿资金去交易,但不能把资金提走。这是本人根据技术架构所做的推论,不是 Hyperliquid 官方文档里哪一句话直接说出来的原文。请把它当作有充分依据的推论,而不是官方白纸黑字的保证。
哪些是官方规定,哪些只是行业惯例
很多关于 API 密钥的「最佳实践」建议被反复讲太多次,听起来就像是每家交易所都强制执行的规则。有些确实是,有些不是。以下是诚实的区分,让你知道哪些是不能妥协的,哪些其实是你自己主动多做、交易所并没有要求你这么做。
| 常见建议 | 到底有多「官方」 |
|---|---|
| 「绝对不要给机器人的密钥开提币权限」 | 行业最佳实践,多家交易所自己的博客与 FAQ 都有提到——但这份表格里没有任何一家交易所在技术上禁止你开这个权限。要不要开,完全是你自己的决定。 |
| 「开 IP 白名单」 | 情况混合。Binance、Bitget、KuCoin、BingX 把它做成开提币权限前的硬性要求。OKX 是可选的,但不开的话密钥到期会比较快。Gate.io、MEXC、Kraken 则完全可选,不影响其他规则。 |
| 「用子账户跑机器人,不要用主账户」 | 本次核实的所有交易所都有官方支持的子账户架构,部分甚至在文档里明确建议(Binance 博客建议一个 bot 配一个子账户;Kraken 文档直接写「strategy isolation」策略隔离)——但没有任何一家把它做成使用 API 的必要条件。 |
| 「设密钥到期时间、定期轮换」 | 本次核实的 10 家里,有 6 家把到期做成强制默认(依交易所不同,14 到 90 天不等)。其中 5 家是「没绑 IP 才触发」,MEXC 则是无条件每 90 天到期一次。Bitget 与 KuCoin 查不到任何官方到期规则。Kraken 则完全可选。 |
核实时间 2026-07-22,依各交易所自己的文档核对。这里的「官方」指的是交易所自己的文档明确强制执行或明确建议这个做法——不代表其他做法不同的交易所就有问题。
检查清单
分成三个阶段,每一项都能追溯回上面已经核实过的内容,不是空泛的「小心一点」提醒。
创建密钥之前
- 直接打开交易所当前最新的 API 文档——不要照抄旧教程里的截图。权限菜单跟到期默认值会变动;比如 Gate.io 这份文档最后更新时间是 2026-07-06。
- 确认你要接入的工具只要求交易权限。如果它也要求提币权限,先问清楚为什么——一个自动化机器人真正需要把资金提走的正当理由非常少见。
- 确认你的交易所是不是真的能在密钥层面把交易跟提币分开。本次核实的 10 家里有 9 家可以。Gate.io 是唯一的例外——它的 Read and Write 权限把两者绑在一起,如果你用的是 Gate.io,IP 白名单跟提币地址设置就要提前规划好。
设置当下
- 除非有明确、当下就需要的理由,否则不要勾选提币权限。
- 如果交易所有提供,就打开 IP 白名单。在Binance、Bitget、KuCoin、BingX上,只要涉及提币权限就不是可选项。其他家虽然可选,还是值得做——这是唯一一个在上述中心化交易所效果都一致的设置(Hyperliquid 这类 DEX 则完全没有 IP 白名单这个概念)。想看 Binance 更详细的单一交易所操作步骤,可参考 我们的 Binance API 密钥安全指南。
- 如果交易所可以设置明确的到期时间,建议主动设置,不要只依赖默认值。Kraken 尤其要注意——除非你自己打开「Key Expiration」,不然它不会主动帮你到期。
上线之后
- 记下你没开 IP 白名单的密钥什么时候会自动到期——本次核实的交易所里,短则 14 天(OKX、BingX)、长则 90 天(Bybit、Gate.io、MEXC)。Bitget 跟 KuCoin 查不到任何到期机制,代表密钥在那里不会自己提醒你。
- 定期回交易所账户本身核对这把密钥实际挂载的权限,而不是只看工具仪表盘显示的内容。像 Gate.io 这种权限绑在一起的交易所,密钥很容易在不知不觉间带着比你原本想开更宽的权限。
- 如果交易所跟工具都支持,考虑让机器人跑在独立子账户而不是主账户。没有任何交易所强制要求这么做,但有几家在自己的文档里把它列为降低泄露损害的建议做法。
选工具之前,该问哪些问题
不管你评估的是我们还是别家工具,以下三个问题都适用:
- 密钥怎么存储?明文存在数据库里是警讯。加密存储,而且加密密钥跟数据库本身分开存放,是值得问清楚的基本门槛。
- 它会不会要求提币权限?如果一个工具明明只需要帮你下单,却还要求提币权限,接入之前值得直接问清楚原因。
- 能不能只用交易权限的密钥就正常运作?如果你的交易所支持交易/提币分离(上面 10 家有 9 家可以),工具本身就不应该需要更多权限才能运作。
就我们自己来说:TVSBot 用 Fernet(AES-128-CBC + HMAC-SHA256)加密存储 API 密钥,加密主密钥只存在环境变量中,跟数据库本身分开存放。每一笔下单都是直接用你的密钥调用交易所自己的 API——TVSBot 不会持有你的资金。我们自己的设置文档建议用户只开交易权限的密钥,并提供一个固定 IP 让你在支持的交易所上设置白名单——因为如上面表格所示,IP 白名单是唯一一个不管交易所是否强制、在上述中心化交易所都能一致降低风险的设置。
常见问题
我应该给交易机器人的 API 密钥开提币权限吗?
哪些交易所可以把交易权限跟提币权限分开?
我能不能创建一把只交易、不能提币的 Gate.io API 密钥?
如果我忘了管理,API 密钥会自动到期吗?
Hyperliquid 的 Agent Wallet 是什么?跟 API 密钥一样吗?
Get started
TVSBot 把你自己的交易所 API 密钥接入 TradingView 信号——非托管、设计上只做交易不碰提币,并提供一个固定 IP 让你在支持的交易所上设白名单。
免费开始使用