Core Pages

CEX Trading

8 min read

What it is

Trade spot orders directly from haythix on 15 connected centralized exchanges (Binance, Coinbase, Kraken, Bybit, OKX, KuCoin, Gate.io, Bitget, HTX, Crypto.com, Bitfinex, Gemini, Bitstamp, Binance US, Poloniex). Live TradingView chart on every pair, base/quote amount toggle so you can think in dollars instead of crypto, unified balance view across all exchanges, real CCXT execution, no simulation.

How to think about it

One page, four tabs: Place Order, All Balances, Open Orders, Trade History. Connect an exchange via Settings → Connections first (we never request withdrawal permissions; keys are encrypted with AES-256-GCM at rest). Most new users never need anything beyond this page for manual trading.

Step-by-step

  1. Connect an exchange (one-time setup)

    Settings → Connections → click an exchange card → Connect. Paste API Key + Secret (plus Passphrase for OKX/Bitget/KuCoin). CRITICAL: when creating the key on the exchange, enable READ + SPOT TRADING only. NEVER enable Withdrawals. IP-whitelist where supported.

  2. Exchange selector (top-right)

    Amber-bordered dropdown shows every exchange you've connected. Switching exchanges reloads markets, balances, open orders, and history for the new venue. Most users settle on one primary exchange; the dropdown handles the "trade on Binance for low fees, occasionally on Coinbase for fiat off-ramp" workflow.

  3. Tabs — Place Order / All Balances / Open Orders / Trade History

    Place Order = the trading form. All Balances aggregates EVERY connected exchange into one USD total + per-asset breakdown. Open Orders shows pending limit orders with one-click Cancel. Trade History shows filled orders sorted by time.

  4. TradingView chart (top of Place Order tab)

    Live chart for the selected pair, exchange-tagged so it uses real OHLCV from your trading venue. Click the fullscreen button (top-right of the chart) for analysis. Chart auto-switches when you change pair.

  5. Buy / Sell toggle

    Green Buy = you spend quote (USDT/USDC) to receive base (BTC/ETH/etc). Red Sell = you give up base to receive quote. The form math + live conversion line below the Amount field updates automatically based on side.

  6. Pair search + dropdown

    Type "BTC" or "ETH/USDC" or "OP" — substring match across the exchange's full markets list. Each exchange has different pairs: Binance has ~2,000+, Coinbase ~400, Kraken ~500. Most-popular pairs (BTC/USDT etc.) sort to the top. List capped at 100 visible; refine search to narrow.

  7. Market vs Limit toggle

    Market = fills immediately at the best available price (you pay the spread). Limit = you set a target price; order sits on the exchange book until someone fills it (or you cancel). Use Market for "I want this NOW"; Limit for "I want a specific price."

  8. Live Market Price (refreshes every 15s)

    Shows the current price as "1 ETH = $2,283.45 USDC" — auto-refreshed every 15s while you're on the Place Order tab. Source: real ticker from the selected exchange.

  9. Amount mode toggle (BASE / QUOTE) — the key UX trick

    Switch between thinking in BASE (0.001 ETH) and QUOTE ($25 USDC). Most new users prefer QUOTE — "I want to buy $50 of ETH" is intuitive; "I want 0.022 ETH" requires mental math. The form auto-converts to the other unit live so you always see both sides.

  10. Amount field with live conversion

    Type any number. Below the field, you'll see a green confirmation line: "You will spend $50.00 USDC for 0.0219 ETH" (or whichever direction your side + mode selects). Stops you from accidentally submitting 100× too much.

  11. Limit Price (only shown for Limit orders)

    Required when orderType = Limit. Enter the price PER UNIT you want to fill at (e.g. "buy ETH at $2200"). Order sits on the exchange book; you can leave it for hours, days, or weeks. The Open Orders tab shows it with a Cancel button.

  12. Submit + result

    Click Buy / Sell. The request goes through CCXT to the exchange. Success returns an Order ID + fill status. Market orders typically fill within 100-500ms. Limit orders return PENDING and appear in Open Orders. Errors (insufficient balance, min notional, etc.) display inline.

  13. All Balances tab

    Total portfolio value across every connected exchange, plus per-exchange breakdown, plus per-asset breakdown. USD value uses real-time prices. Useful for answering "how much do I have everywhere?" without logging into each exchange separately.

  14. Open Orders + Trade History tabs

    Open Orders: pending limit orders with side, price, amount, status, Cancel button. Trade History: filled orders sorted newest first with fill price, fee, and timestamp. Click any row in History to view the trade detail.

Tips & pitfalls

  • Always trade in QUOTE mode for your first 10 trades. "I want to spend $50" is harder to misread than "I want 0.022 ETH." Switch to BASE mode once you're comfortable converting in your head.
  • Tier gating: Starter unlocks Binance, Coinbase, Kraken. Trader adds Bybit, OKX, KuCoin, Gate.io, Bitget, HTX. Pro unlocks the rest.
  • IP-whitelist your API key on the exchange for max security. It tells the exchange to accept requests only from haythix's server IP.
  • Coinbase Advanced Trade requires quote-sized market BUYs (the platform handles this transparently when you use QUOTE mode). Other exchanges accept either.
  • If you cancel a limit order from haythix and it filled simultaneously on the exchange, you'll see a "filled_before_cancel" status — the race condition is handled, no order is double-acted-upon.
  • Use the All Balances tab as your monthly "where's my money" check. Drift between exchanges accumulates faster than expected once you trade across multiple venues.
  • Place Order tab's TradingView chart is the SAME chart embedded across Grid Bot, Smart Trade, DCA, and DEX pages. Get comfortable reading it here; the same skill transfers everywhere.
  • Rate limits are throttled per exchange (Binance 10/s, Kraken 3/s, etc.) with exponential backoff so concurrent users don't trigger 429 errors — you don't need to worry about pacing your clicks.