Skip to content

API Keys Overview

Aegis executes futures hedges on a centralized exchange using an API key you provide. This page describes what permissions are required, what must be disabled, and how keys are stored.

The table below shows the required and forbidden permissions for each supported exchange. BingX is not yet live and does not appear in this matrix.

Permission Binance Futures HyperLiquid
Read / Account Info Required Available (inherent)
Spot Trading Required N/A
Futures / Derivatives Trading Required Available (inherent)
Withdraw funds Disabled — MUST NOT enable Not possible — no withdrawal capability exists, by design
Internal transfers Disabled — MUST NOT enable Not possible — no transfer capability exists, by design
Bank / Fiat withdrawals Disabled — MUST NOT enable N/A

This matrix is consistent with the Aegis Terms of Service, section “API Key Requirements and Security”.

Binance Futures notes:

  • Spot Trading permission is required because Binance API keys are account-wide. The bot uses Futures and Spot endpoints.
  • IP restriction is strongly recommended. Whitelist your bot’s server IP in the Binance API key settings.
  • Binance API keys carry permission checkboxes you configure at creation time (Read, Spot, Futures, Withdraw, etc.) — disabling withdrawal and transfer permissions is a setting you must choose correctly.

HyperLiquid notes:

  • HyperLiquid uses an agent wallet model, not a traditional API key with permission checkboxes. You generate an agent wallet and its private key (a real ECDSA private key, not an API secret), then authorize the agent wallet to trade on your behalf. The “Withdraw funds” and “Internal transfers” rows above are not toggles you disable — the agent wallet has no such capability at all: the executor only ever signs order / cancel / modify, never withdraw, usdSend, spotSend, or vaultTransfer. See the HyperLiquid guide for the full setup and security model.
  • Spot Trading and Bank/Fiat withdrawals are not applicable on HyperLiquid.
  • Trading-only permissions. Aegis requires only read and trading permissions. Withdrawal, internal transfer, and bank/fiat permissions must be disabled. Aegis cannot withdraw funds from your exchange account.

  • AES-256-GCM encryption at rest. API keys are encrypted with AES-256-GCM inside Aegis infrastructure immediately upon saving. The raw key is not stored in plaintext.

  • Never shown back. After saving an API key, it cannot be retrieved or displayed in the dashboard. If a key is lost or compromised, revoke it on the exchange and add a new one.

  • LP wallet private key — never requested. Aegis never asks for or stores your LP wallet private key or seed phrase. The LP wallet is used read-only for on-chain position scanning only.

  • HyperLiquid Signing Key (agent wallet private key). HyperLiquid’s auth model uses a delegated agent wallet instead of a traditional API key. The credential you provide is a real ECDSA private key — the agent wallet’s — not an API secret with permission checkboxes. Aegis stores it encrypted with AES-256-GCM at rest, never shows it back, and uses it to sign trading actions server-side, autonomously and without per-transaction confirmation. The agent wallet carries no withdrawal or transfer capability by construction (not a disabled setting — the capability does not exist in the signing path). If this key is ever compromised, the exposure is operational (adverse trades), not a withdrawal or custody risk, and it is revocable at any time from your HyperLiquid account by deauthorizing the agent wallet. See HyperLiquid Signing Key for setup details.

Tutorial screenshots for API key setup follow this editorial convention:

  • Asset location: apps/docs/src/assets/api-keys/{binance,hyperliquid}/
  • Format: each screenshot uses AVIF as the primary source and PNG as the mandatory fallback, rendered via <picture> / Astro <Picture> so that browsers that do not support AVIF automatically fall back to PNG.
  • Verification footer: each tutorial page that contains screenshots must include a “Last verified: <date>” line at the bottom, indicating when the screenshots were last confirmed accurate against the live exchange UI.