Latent Meta · Onboarding

Binance Sub-Account & API Setup

A step-by-step guide to create a dedicated, isolated Binance sub-account with USDⓈ-M Futures and a locked-down API key for the trading bot. Please follow every step — the security settings matter.

~15 minutes Desktop browser recommended You'll hand back: API Key + Secret

What we're creating (and why)

A single API key that is:

We use a sub-account so this is fully isolated from your main balance.

Before you start

  1. A Binance account with identity verification (KYC) complete — required for sub-accounts.
  2. Futures activated: go to Futures → USDⓈ-M and complete the one-time quiz/agreement if prompted.
  3. The bot server IP address — get this from RJ (needed in Step E):
⚑ Bot server IP — fill this in before you start  
Note Binance occasionally renames menus or moves things between app and web. If a label doesn't match exactly, find the nearest equivalent — the web version (binance.com on desktop) is the most reliable for sub-account & API management.

A Create the sub-account

  1. Log in on the web (binance.com, desktop).
  2. Top-right profile icon → Sub Accounts (or search “Sub Account Management”).
  3. Click Create Sub Account.
  4. Choose Standard Sub Account (virtual email). Not “Managed” — that's for institutions.
  5. Label it trading-bot and create it.
  6. Note the sub-account's email from the list.

B Enable Futures on the sub-account

  1. In Sub Account Management, find the new sub-account.
  2. Open its permissions / settings (a “…” menu or a Permissions column).
  3. Enable USDⓈ-M Futures for the sub-account; agree to terms if asked.

C Fund the sub-account's Futures wallet

  1. Use Transfer (or “Asset → Transfer”) in Sub Account Management.
  2. Transfer USDT: From Main account (Spot/Funding) → To the sub-account's USDⓈ-M Futures wallet.
  3. Amount: whatever starting size RJ specifies. Start small for the first run.
Important Funds must land in the USDⓈ-M Futures wallet — not Spot, not Coin-M. If they go to Spot by mistake, do a second internal transfer Spot → USDⓈ-M Futures inside the sub-account.

D Create the API key on the sub-account

  1. In Sub Account Management → the sub-account → API Management.
  2. Click Create API.
  3. Choose System generated (HMAC).
  4. Label it bot; complete the 2FA prompts.
  5. Copy the API Key and Secret Key immediately — the Secret is shown only once.
Do NOT pick Ed25519 / “Self-generated.” The bot only works with a System generated (HMAC) key. An Ed25519 key will fail every request.

Set the permissions exactly like this

PermissionSetting
Enable Reading✅ ON
Enable Futures✅ ON
Enable Spot & Margin Trading❌ OFF
Enable Withdrawals❌ OFF — never turn on
Permits Universal Transfer❌ OFF
Enable Internal Transfer❌ OFF
If “Enable Futures” is greyed out Step B isn't finished — enable futures on the sub-account first, then edit the key.

E Lock the API key to the bot's IP

  1. On the key's settings, find IP access restrictions.
  2. Select “Restrict access to trusted IPs only.”
  3. Enter the bot server IP from the box at the top.
  4. Save; re-confirm with 2FA if prompted.
Expected With Futures enabled, Binance requires an IP restriction — a futures key with no IP lock won't be allowed to trade.

F Send the credentials to RJ — securely

Send RJ three things:

  1. The API Key
  2. The API Secret
  3. Confirmation: Futures + Read only, Withdrawals OFF, IP-locked to the bot server.
Never send these over plain email/SMS or a public channel. Use an end-to-end-encrypted message (e.g. Signal) or a password-manager share. The Secret can't be retrieved later — if lost, delete the key and make a new one.

Final checklist

Common mistakes → what you'll see

MistakeSymptom
Ed25519 key instead of HMACEvery request rejected — recreate as System generated
Futures not enabled (sub-account or key)Orders rejected
Wrong wallet funded (Spot, not USDⓈ-M Futures)“Insufficient balance”
IP not whitelisted / wrong IP-2015 Invalid API-key, IP, or permissions
Withdrawals left ONNot a bot error — a security risk. Keep OFF.
Good to know The bot itself sets hedge mode, cross margin, and leverage on first start — the account just needs to be clean (no open positions/orders) the first time it connects, which a fresh sub-account is.