先講原則:密鑰能做什麼,就假設它會被拿去做什麼
API 密鑰是一把不用密碼、不用二次驗證的鑰匙。誰拿到它,誰就能在權限範圍內操作你的帳戶。所以設權限時不要問「以後會不會用到」,要問「它外洩時,最壞會怎樣」。
對交易軟體來說,答案很固定:
- 讀取:要。看餘額、持倉、委託都靠它。
- 交易:要。下單、撤單、掛止損都靠它。做 U 本位合約的話,合約交易權限也要開。
- 提幣:不要。交易軟體不需要把錢轉出交易所。開了它,外洩時損失的就不只是交易虧損,而是整個帳戶。
- 劃轉、借貸等其他權限:用不到就不開。
TonyTrade 就是照這個原則做的。它只需要讀取和交易權限;連線時會檢查密鑰權限,發現帶提幣權限就拒絕使用,請你換一把。詳細設定步驟見密鑰怎麼設,整體思路見安全設計。
三家的權限名稱對照
三家介面用詞不同,意思相近。下表按各家官方說明整理,選項名稱可能隨介面改版調整,以你建立密鑰時看到的頁面為準。
| 幣安 | 歐易(OKX) | Bitget | |
|---|---|---|---|
| 讀取 | Enable Reading(允許讀取),新建時預設勾選 | Read(讀取) | 唯讀(read-only) |
| 現貨交易 | Enable Spot & Margin Trading(現貨與槓桿交易) | Trade(交易),現貨和合約共用 | 讀寫(read/write)下的交易權限 |
| 合約交易 | Enable Futures(合約),單獨勾選 | 同上,包含在 Trade 裡 | 交易權限涵蓋合約,依帳戶類型而定 |
| 提幣 | Enable Withdrawals,必須先限制 IP 才能開 | Withdraw(提幣) | 提幣權限單獨設定,只能從白名單 IP 提幣 |
| 密鑰附帶的密碼 | 無 | Passphrase,自己設定,遺失無法找回,只能重建密鑰 | Passphrase,遺失只能刪除重建 |
幣安有一點要注意:它的說明提到,在開通合約帳戶之前建立的密鑰,事後可能勾不了合約權限。如果要做 U 本位合約,建議先開好合約帳戶,再建密鑰;具體條件以幣安當前說明為準。
IP 白名單:綁不綁,影響密鑰能用多久
綁 IP 的意思是:這把密鑰只接受來自指定 IP 位址的請求。就算密鑰外洩,對方不在這些位址上也用不了。三家都建議綁。
不綁的代價各家不同,而且規則會變:
- 幣安:建立密鑰的說明頁寫明,開提幣權限必須先限制 IP。幣安會刪除長期未使用、且沒有綁 IP 的密鑰,具體天數以幣安當前說明為準。不綁 IP 時能開哪些交易權限,幣安調整過幾次,以幣安當前說明為準。
- 歐易(OKX):API 常見問題寫明,沒有綁 IP、帶交易或提幣權限的密鑰,連續 14 天沒有使用就會失效;只有查餘額、下單這類需要驗證身分的請求才算「使用」,模擬盤密鑰不受影響。每把密鑰最多可綁 20 個 IP。
- Bitget:官方文件強烈建議建立密鑰時綁 IP,提幣只能從白名單 IP 進行。我們沒有找到 Bitget 對「不綁 IP 的密鑰多久失效」的官方原文,以 Bitget 當前說明為準。
TonyTrade 跑在你自己的電腦和手機上,請求從你自己的網路發出,不經過我們的伺服器。所以白名單裡填的是你自己的對外 IP,不是任何第三方的位址。運作方式見它怎麼工作。
子帳戶:把能動的錢先隔開
權限限制的是「能做什麼」,子帳戶限制的是「能動多少」。做法是在交易所開一個子帳戶,只把準備交給程式交易的資金劃進去,再在這個子帳戶下建密鑰。
- 幣安:子帳戶有各自的資產餘額,在主帳戶的 API 管理裡可以為子帳戶建立和編輯密鑰。子帳戶之間的資產劃轉由主帳戶控制。
- 歐易(OKX):在建立密鑰時選擇要綁的子帳戶;子帳戶要用它自己的密鑰和 Passphrase,不要和主帳戶混用。
- Bitget:也支援子帳戶和子帳戶密鑰,入口和額度以 Bitget 當前說明為準。
這樣做之後,就算密鑰外洩、軟體出錯,影響範圍也停在子帳戶裡。再配合 TonyTrade 的寫死上限(單筆倉位、總倉位、最大槓桿、單日最大虧損、幣種白名單、每日下單數),等於多加了兩道邊界。上限怎麼定見功能。
建立密鑰時的檢查清單
- 如果做合約,先在交易所開通合約帳戶。
- 建一個子帳戶,只劃入準備用來交易的資金。
- 在子帳戶下建立新密鑰,名稱寫清楚用途,例如「TonyTrade 筆電」。
- 勾選讀取和交易(做合約再勾合約)。確認提幣沒有勾。
- IP 固定的話綁上白名單。
- Secret 和 Passphrase 只會顯示一次,直接貼進軟體,不要存在聊天記錄、截圖或雲端筆記裡。
- 回到交易所的密鑰列表,再看一次權限。
TonyTrade 收到密鑰後,會加密存進作業系統的鑰匙圈(系統鑰匙串),不上傳到任何伺服器。本站本身收集什麼資料,另見隱私。三家交易所各自支援哪些品種,見交易所和品種。
密鑰外洩了怎麼辦
懷疑外洩就當作已經外洩。順序很重要:先止血,再查原因。
- 先在交易所刪除這把密鑰。刪除比改權限可靠。到交易所的 API 管理頁操作。
- 在 TonyTrade 裡按一鍵全停。然後到交易所確認目前的倉位和掛單,和你預期的一致。
- 查帳。看最近的委託、成交、劃轉和提幣紀錄,有沒有不是你做的操作。
- 保護帳戶本身。改登入密碼,檢查二次驗證,移除不認得的登入裝置。
- 找出外洩來源。是截圖外傳、存在公開的程式碼倉庫,還是裝置中毒?來源沒處理,新密鑰也會再漏。
- 有異常就聯繫交易所客服,提供時間和紀錄。
- 確認安全後,照上面的清單建立新密鑰。
其他常見疑問見常見問題,交易本身的風險見風險提示。止損為什麼要放在交易所,見止損單為什麼要掛在交易所;行情插針時怎麼辦,見插針是什麼、怎麼應對。想在 TonyTrade 有版本時收到通知,可以到這裡留下郵箱。關於做這個工具的團隊,見關於。
出處
以下是本頁引用的交易所官方說明。交易所會調整規則,請以你操作當下的官方頁面為準。本頁由 TonyTrade 團隊整理。
- 幣安:How to Create API Keys on Binance(權限名稱、提幣須限制 IP、合約權限)
- 幣安:How to Use an API Key Securely: 5 Tips From Binance(長期未使用、未綁 IP 的密鑰會被刪除)
- 幣安:Get API Key Permission(查詢密鑰是否限制 IP、開了哪些權限)
- 幣安:Binance Sub-Account Functions and FAQ
- 歐易(OKX):OKX API FAQ(Read / Trade / Withdraw、14 天未使用即失效、每把密鑰最多綁 20 個 IP)
- 歐易(OKX):OKX API v5 文件(建立密鑰、Passphrase)
- 歐易(OKX):Subaccounts, Account Mode, and API Connections FAQ
- Bitget:Bitget API Quick Start(唯讀/讀寫、提幣只能經白名單 IP、建議綁 IP)
- Bitget:Bitget UTA Quick Start(Passphrase 遺失須重建密鑰)
- Bitget:API Key Terms of Use(建議所有密鑰使用 IP 白名單)