Exchanges
Binance

Binance

Binance connects via classic Futures API key + secret. CubeTerminal trades USD-M Futures only — COIN-M futures, spot, and margin are not wired up.

Create a Futures API key

  1. Log in to binance.com (opens in a new tab) and open Account → API Management
  2. Click Create APISystem generated
  3. Name the key (e.g. CubeTerminal) and complete the 2FA confirmation
  4. On the permissions screen:
    • Enable Enable Reading
    • Enable Enable Futures — required for trading perps
    • Leave Enable Withdrawals disabled
    • Leave Enable Spot & Margin Trading disabled (not used)
  5. Copy the API Key and Secret Key — the secret is only shown once
⚠️

Binance hides the secret permanently after key creation. If you lose it, you must delete the key and create a new one.

Connect in CubeTerminal

  1. Open Settings → Trading Accounts → Binance
  2. Paste the API Key and Secret Key
  3. Click Connect
  4. The terminal pulls your futures balance and open positions to verify the credentials

USD-M only

The terminal trades the USDⓈ-M Futures product exclusively. Symbols follow Binance's native format:

  • BTCUSDT — USDT-margined
  • ETHUSDC — USDC-margined (USDC-M lives under the same USD-M umbrella on Binance)

COIN-M symbols (BTCUSD_PERP, ETHUSD_PERP) are not supported — they show up in the Symbols widget only when you are connected to an exchange that trades them (Bybit inverse, for example).

IP allowlist

Binance offers IP restriction on every API key — it's the single cheapest defense against a leaked secret, and strongly recommended.

⚠️

Do not whitelist your home IP. CubeTerminal is a hosted web app — your Binance requests originate from CubeTerminal's servers, not your browser. Whitelisting your home IP blocks every request with -2015 Invalid API-key, IP, or permissions.

Whitelist these two IPs

ServiceStatic outbound IPUsed for
CubeTerminal app208.77.244.15REST API: orders, account, market data
Exchange WS Proxy162.220.232.99WebSocket streams: positions, fills, mark prices

Steps

  1. In Binance: API Management → edit your key → Restrict access to trusted IPs only
  2. Paste both IPs (Binance accepts comma-separated):
    208.77.244.15, 162.220.232.99
  3. Save changes

The key now accepts requests only from CubeTerminal's infrastructure. These IPs are static (Railway-managed) and won't rotate — if a future deployment moves to a different region we'll announce in the changelog before it happens.

Same two IPs apply to Bybit and Bitget keys — see Bybit IP allowlist and Bitget IP allowlist. Hyperliquid and Phoenix don't use API keys (wallet-signed), so there's nothing to whitelist.

Quirks

Position mode: one-way vs. hedge

Binance supports both position modes on futures. CubeTerminal expects one-way mode — toggle it in the Binance web UI under Preferences → Position Mode if you are currently in hedge mode. Hedge mode causes the Trade Entry widget's long/short buttons to behave unexpectedly because the API requires a positionSide field not sent by the terminal.

Notional minimums

Binance enforces a per-symbol notional minimum (typically $5 or $10). Sub-minimum orders are rejected by the API, not by the terminal.

Troubleshooting

"Invalid API-key, IP, or permissions for action"

  • Verify Enable Futures is checked on the key
  • Verify the key's IP allowlist includes both CubeTerminal IPs (208.77.244.15 and 162.220.232.99) — or is empty for testing. See IP allowlist.
  • Verify the key hasn't expired — Binance auto-expires keys after 90 days of inactivity

Orders rejected with "margin insufficient"

  • Check you have enough USDT/USDC in your Futures wallet (not Spot)
  • Transfer funds via Binance web UI: Wallet → Transfer → Spot → USDS-M Futures