> ## Documentation Index
> Fetch the complete documentation index at: https://uncoded.ch/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bybit — Setup and Operation

> The standard second-venue choice for operators outgrowing Binance. Strong global liquidity, MiCA-compliant EU variant available, complementary symbol coverage.

<Info>
  **Bybit is the most common second venue for unCoded operators.** Strong global liquidity, broad symbol coverage that complements Binance well, a MiCA-compliant EU variant for European operators, and a mature spot-trading API. If you're scaling beyond Binance, Bybit is the standard next step.
</Info>

## When Bybit makes sense

<CardGroup cols={2}>
  <Card title="Adding a second venue" icon="plus">
    You've run on Binance for `1+` month and want diversification. Bybit is the most common pairing.
  </Card>

  <Card title="EU residents wanting MiCA compliance" icon="circle-euro">
    Bybit EU is the MiCA-compliant variant for European operators wanting regulatory clarity in their jurisdiction.
  </Card>

  <Card title="Symbol coverage Binance doesn't have" icon="boxes-stacked">
    Bybit lists some symbols (especially Asian-market-driven) that Binance doesn't. Useful if you have specific symbol-coverage needs.
  </Card>

  <Card title="Complementary liquidity" icon="droplet">
    On many majors, Bybit's liquidity is comparable to Binance — providing redundancy for routing or fallback.
  </Card>
</CardGroup>

## Bybit vs Bybit EU

<AccordionGroup>
  <Accordion title="Bybit (global)" icon="globe">
    The global Bybit entity. Available in most jurisdictions, but not in the US or in MiCA-restricted EU contexts.

    Use this if you're outside the US and you don't specifically need MiCA compliance.
  </Accordion>

  <Accordion title="Bybit EU" icon="circle-euro">
    MiCA-compliant variant for EU residents. Same trading mechanics as global Bybit, with an EU-regulatory wrapper.

    Use this if:

    * You're an EU resident.
    * You want regulatory clarity under the MiCA framework.
    * You'd otherwise face KYC restrictions on global Bybit.

    Account is separate from global Bybit — they're two different venues with different account databases.
  </Accordion>
</AccordionGroup>

## Account creation

<Steps>
  <Step title="Sign up at Bybit (or Bybit EU)">
    Standard signup flow. Use a referral link if available — lifetime fee discounts attached at signup are kept long-term.
  </Step>

  <Step title="Verify email and phone">
    Standard verification.
  </Step>

  <Step title="Complete KYC">
    KYC to the level required for spot trading. Higher tiers unlock features unCoded does not need.
  </Step>

  <Step title="Enable 2FA — authenticator app preferred">
    Authenticator app over SMS. SMS-based 2FA is vulnerable to SIM-swap attacks.
  </Step>
</Steps>

## API key creation

<Steps>
  <Step title="Navigate to API Management">
    Account → "API Management."
  </Step>

  <Step title="Create a new key">
    Click "Create New Key." Choose **"System-generated API Keys"** (the standard option).
  </Step>

  <Step title="Configure permissions">
    * ✅ **Read** — enable.
    * ✅ **Spot Trading** — enable.
    * ❌ **Wallet (Account Transfer / Master-Subaccount Transfer / Withdrawals)** — leave unchecked.
    * ❌ **Derivatives** — leave unchecked unless your strategy requires it.
  </Step>

  <Step title="Set IP allowlist">
    **Permitted IPs**: paste your VPS's static IP. Find it with `curl -s https://api.ipify.org` from the VPS.

    Wait `30–60` seconds for propagation after saving.
  </Step>

  <Step title="Set API key validity">
    Select **"No Expiration"** if you want long-term operation. Otherwise set a date and remember to rotate before expiry.

    For most operators, "No Expiration" combined with quarterly rotation discipline is the right pattern.
  </Step>

  <Step title="Save the key and secret immediately">
    The secret is shown once. Paste both key and secret into your password manager **before doing anything else**.
  </Step>
</Steps>

## Connecting unCoded to Bybit

<Steps>
  <Step title="Open the unCoded Dashboard">
    Log in with admin credentials.
  </Step>

  <Step title="Add Bybit as an exchange">
    "Exchanges" → "Add Exchange" → "Bybit" (or "Bybit EU" for the EU variant).
  </Step>

  <Step title="Paste credentials and test">
    Paste API key + secret. Toggle "Enabled" on. Click "Save," then "Test Connection."
  </Step>

  <Step title="Watch the logs">
    Open the Logs panel for the first hour to confirm connection, configuration polling, and order placement when conditions hit.
  </Step>
</Steps>

## Bybit-specific quirks

<AccordionGroup>
  <Accordion title="Different base URLs for spot and derivatives" icon="route">
    Bybit uses different API base URLs for spot trading and derivatives. The unCoded exchange profile selects automatically based on the strategy scope — you don't need to think about it.

    If you ever try to enable derivatives on a spot-only API key, you'll see the bot fall back to spot endpoints. Spot-only is the default and right configuration.
  </Accordion>

  <Accordion title="Error code 10003 — auth invalid (Binance equivalent: -2015)" icon="circle-exclamation">
    Bybit's `10003` is the equivalent of Binance's `-2015` — invalid API key, IP mismatch, or permission issue.

    Most common cause: IP allowlist propagation. Wait a minute and retest.
  </Accordion>

  <Accordion title="Error code 10006 — rate limit (Binance equivalent: -1003)" icon="gauge">
    Bybit's `10006` is the equivalent of Binance's `-1003` — rate limit exceeded.

    Bybit's published rate limit is more permissive than Binance's (`100` requests per `5` seconds in many endpoint categories). The bot handles this with cooldown-and-retry; you should not see this in normal operation.
  </Accordion>

  <Accordion title="Symbol naming" icon="font">
    Bybit uses unhyphenated symbol naming similar to Binance: `BTCUSDT`, `ETHUSDT`, etc. Different from OKX (which uses dashes).
  </Accordion>

  <Accordion title="Sub-account support" icon="layer-group">
    Bybit supports sub-accounts. Same pattern as Binance: separate API keys per sub-account, separate balances, one master account for compliance.

    Useful for strategy isolation. Most operators don't need this initially.
  </Accordion>

  <Accordion title="Maker rebate tiers" icon="coins">
    Bybit offers maker fee rebates at higher VIP tiers. For most retail operators (`$15,000–$50,000`), you stay at the base tier with standard fees. The unCoded modes don't optimize specifically for Bybit's fee structure.
  </Accordion>
</AccordionGroup>

## Common patterns for Bybit + Binance dual-venue operation

<AccordionGroup>
  <Accordion title="Capital allocation" icon="money-bill-wave">
    A typical starting allocation when adding Bybit as a second venue:

    * **70% on Binance** — your validated primary venue.
    * **30% on Bybit** — the new exposure, smaller while you build confidence.

    After 2–3 months on Bybit, if behavior matches expectations, rebalance to closer to 50/50 if the strategy benefits from it. Some operators stay at 70/30 long-term — there's no right answer.
  </Accordion>

  <Accordion title="Symbol selection" icon="boxes-stacked">
    Don't trade the same symbols on both venues unless you have a specific reason. Most operators:

    * Trade `BTCUSDT`, `ETHUSDT` on Binance (your primary).
    * Trade different symbols on Bybit — symbols Binance doesn't list as well, or alts where Bybit's liquidity is competitive.

    Same-symbol-on-multiple-venues works but adds complexity (cross-venue rebalancing concerns, double fee exposure to the same price move).
  </Accordion>

  <Accordion title="Mode selection" icon="sliders">
    Run the same mode on Bybit that's working for you on Binance. The pre-built modes are venue-agnostic — BasicMode behaves the same way on Bybit as on Binance, modulo small fee/slippage differences.

    Different modes per venue is a level-2 pattern — not necessary for most operators.
  </Accordion>

  <Accordion title="Reconciliation discipline" icon="rotate">
    Two venues = two reconciliation surfaces. The Dashboard surfaces both, but you should review both:

    * Weekly: are positions on Bybit and Binance behaving as expected?
    * Monthly: cross-check both venues' Tax Reports against the Telegram running totals.
    * Quarterly: review API key rotation across both venues.
  </Accordion>
</AccordionGroup>

## Troubleshooting Bybit-specific

<AccordionGroup>
  <Accordion title="Error 10003: Auth invalid" icon="circle-exclamation">
    Equivalent to Binance's `-2015`. Almost always IP allowlist mismatch.

    **Fix**:

    1. Verify your VPS IP: `curl -s https://api.ipify.org`.
    2. Compare against Bybit's API key allowlist.
    3. Update if different.
    4. Wait `30–60` seconds.
    5. Retest.
  </Accordion>

  <Accordion title="Error 10006: Rate limit" icon="gauge">
    Bybit's rate limit hit. Bot handles automatically with cooldown-and-retry.

    Persistent `10006` indicates over-aggressive configuration. Reduce active pair count or increase `recvWindow`-equivalent settings.
  </Accordion>

  <Accordion title="Connection works but trades fail with 'insufficient balance'" icon="circle-exclamation">
    Same as Binance's `-2010`. Account doesn't have enough quote asset.

    **Fix**: top up balance, or adjust mode's investment-per-buy, or close other positions.
  </Accordion>

  <Accordion title="Bybit EU connection works but I'm trying to trade global Bybit" icon="circle-question">
    Bybit and Bybit EU are different venues. The unCoded Dashboard has separate "Bybit" and "Bybit EU" entries.

    Configuring credentials for global Bybit on the EU venue (or vice versa) will fail authentication with `10003` because the key doesn't exist on the wrong venue's account database.

    **Fix**: in the Dashboard, select the correct venue when adding the exchange.
  </Accordion>

  <Accordion title="API key expires unexpectedly" icon="clock">
    If you set an expiration date when creating the key, Bybit will revoke it on that date. The bot will start failing with `10003` on the expiry date.

    **Prevention**: select "No Expiration" at key creation. Use quarterly rotation discipline instead.

    **Recovery**: create a new key, update Dashboard, restart TradingBot.
  </Accordion>
</AccordionGroup>

## Best practices for Bybit operators

<Tip>
  * ✅ **Use Bybit as a second venue, not a starter** unless you have a specific reason (e.g., EU MiCA compliance).
  * ✅ **70/30 starting allocation** — primary venue first, Bybit smaller while you build confidence.
  * ✅ **Different symbols per venue** — avoid same-symbol on multiple venues unless deliberate.
  * ✅ **API key permissions: spot trading + read only** — no withdrawals, no derivatives unless required.
  * ✅ **IP allowlist your API key** — same VPS IP as Binance allowlisting.
  * ✅ **Set 'No Expiration' on the key** — use quarterly rotation discipline instead.
  * ✅ **For EU operators wanting MiCA**: use Bybit EU specifically.
  * ✅ **Reconcile weekly across both venues** — Dashboard surfaces both; review both.
  * ✅ **Cross-check Tax Reports across venues monthly** — one report per venue, both should match Telegram totals.
  * ✅ **Rotate API keys quarterly across both venues** — same cadence, simpler operator routine.
</Tip>

## What's next

<CardGroup cols={2}>
  <Card title="API Key Security" icon="shield" href="/exchanges/api-key-security">
    Universal principles applicable to Bybit and every other venue.
  </Card>

  <Card title="Binance Setup" icon="building-columns" href="/exchanges/binance">
    The recommended primary venue most Bybit operators also run.
  </Card>

  <Card title="OKX Setup" icon="building-columns" href="/exchanges/okx">
    Alternative second venue with deeper non-Western liquidity.
  </Card>

  <Card title="Other venues" icon="ellipsis" href="/exchanges/other-venues">
    The remaining production-ready venues.
  </Card>

  <Card title="TradingBot" icon="robot" href="/modules/tradingbot">
    The execution engine that uses your Bybit credentials.
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/troubleshooting/common-issues">
    Every Bybit error code and recovery procedure.
  </Card>
</CardGroup>
