Skip to content

Connecting Binance

Binance USDⓈ-M perpetual futures. You create an API key on Binance, restrict it, and paste it into fxyz.

Binance needs more setup than the other venues, because its keys are powerful by default and have to be locked down before they're safe to hand over. fxyz checks every one of these for you at connect time and refuses the key if any is wrong. So if you get a message instead of a connection, it's telling you exactly what to change.

Before you start

On Binance, go to API Management and create a key. Then open Edit restrictions and set it up like this:

SettingRequiredWhy
Restrict access to trusted IPs onlyOn, with our IPsBinance rejects our requests otherwise. It's also what makes the key useless to anyone who steals it.
Enable FuturesOnThis is the permission that lets fxyz trade perps.
Enable WithdrawalsOffA key that can withdraw is as good as your funds. fxyz won't hold one.
Portfolio MarginOff (account-level)Portfolio Margin removes Futures access from API keys entirely.
Position ModeOne-wayUnder Futures, Preference. Hedge mode changes how every order has to be sent.

IMPORTANT

When you tick "Restrict access to trusted IPs only", you need to add fxyz's IP addresses. The connect dialog shows you the exact list to paste. A key restricted to the wrong IPs looks correct on Binance's screen but fails on every request, so copy them from the dialog rather than from memory.

Choose "System generated" when Binance asks how to create the key, and paste the Secret Key it shows you. That's the key type fxyz uses.

What you'll see

  1. In fxyz, open Settings and click Connect Binance (or the Binance card on the trade page).
  2. Copy the IP addresses shown in the dialog into Binance's trusted-IP list.
  3. Paste your API Key and Secret Key into fxyz.
  4. fxyz verifies the key's restrictions against Binance, then stores it encrypted on its side.

Your browser forgets the secret the moment the dialog closes.

If it refuses to connect

Every rejection names the fix. The common ones:

  • "not IP-restricted": turn on "Restrict access to trusted IPs only" and add our IPs.
  • "has withdrawal permission enabled": untick Enable Withdrawals.
  • "does not have Futures enabled": tick Enable Futures.
  • "Hedge position mode": switch to One-way under Futures, Preference.
  • "That looks like an Ed25519 private key": you picked "Self-generated" on Binance. Create the key again choosing "System generated".

Why your funds stay yours

Two things, and which is which matters.

What fxyz enforces. The connect flow refuses any key reporting withdrawal permission. This is a real check against Binance's own API, not a promise, and a key without that permission has no withdrawal path at all.

What you enforce. Unlike Hyperliquid or Lighter, nothing in the Binance protocol stops a sufficiently permissioned key from withdrawing to an arbitrary address. The protection comes from the key being restricted, which is why the checks above are mandatory rather than advisory.

WARNING

Treat a Binance API key as more sensitive than a Hyperliquid agent key. On Hyperliquid the protocol itself makes withdrawal impossible. On Binance, the key's own restrictions are what make it safe. Keep withdrawals off, keep the IP list tight, and never reuse this key anywhere else.

The IP restriction is the strongest part of this. Even a leaked key is unusable from any machine that isn't ours.

Disconnecting

Click Disconnect Binance. fxyz drops its copy of the key immediately. To revoke fully, delete the key in Binance's API Management. That's the only step that makes the credential itself dead.

See per-exchange custody for how each venue keeps your funds yours.

Funds stay on the exchange. fxyz can trade, never withdraw.