> ## 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.

# Quickstart — From Zero to Your First Live Trade

> A focused, step-by-step walkthrough that takes you from scratch to your first running unCoded strategy in approximately half a day.

<Info>
  **Time budget**: \~`4 hours` total spread over 1–2 days. The walkthrough is broken into 6 focused stages. Each stage is self-contained — pause and resume at any time.

  **What you'll have at the end**: a self-hosted unCoded stack on your VPS, one connected exchange, one validated strategy running in shadow mode, and a clean path to going live with real capital after a one-week observation period.
</Info>

## Before you start — pre-flight checklist

<AccordionGroup>
  <Accordion title="Capital readiness" icon="wallet">
    * **Minimum capital you can afford to put at risk**: `$1,500` (smallest mode `MinimalMoney`). Below this, the bot's grid math doesn't work cleanly.
    * **Recommended sweet spot**: `$15,000–$25,000`. This is where most modes are tuned and where cost ratios are most efficient.
    * **Reserve**: plan to hold approximately **50%** of your trading capital in reserve at the exchange. Mean-reversion modes scale into drawdowns; without a reserve, the strategy's expected behavior is broken.
  </Accordion>

  <Accordion title="Exchange account" icon="building-columns">
    * A **fully KYC-verified account** at one of the 17 production-ready exchanges.
    * **2FA enabled** on the account itself (not just the API key).
    * **Funded** with at least your minimum trading capital.
    * **Recommendation for first-timers**: Binance (deepest liquidity, most-tuned profile). US: Coinbase Advanced. EU: Bybit EU or Bitvavo (MiCA-compliant).
  </Accordion>

  <Accordion title="Hardware / VPS" icon="server">
    * A VPS at the **`4 vCPU / 8 GB / 80 GB NVMe SSD`** baseline (`€10–€15/month` at hosts like Netcup or Hetzner).
    * Ubuntu LTS or similar Linux.
    * SSH access via a key (not password).
    * Stable outbound internet.
  </Accordion>

  <Accordion title="Telegram setup" icon="paper-plane">
    * A regular **Telegram account**.
    * A new **bot token** from `@BotFather` (we'll show you how).
    * A **group or channel** where the bot will post notifications.
  </Accordion>

  <Accordion title="What you do NOT need" icon="circle-xmark">
    * You do **not** need to know any programming language.
    * You do **not** need a domain name (initial setup is fine on the IP address).
    * You do **not** need cloud accounts beyond your VPS provider.
    * You do **not** need a Bloomberg terminal or paid market data — exchange-public data is what the bot uses.
  </Accordion>
</AccordionGroup>

***

## Stage 1 — Provision your server (\~30 min)

<Steps>
  <Step title="Order a VPS at the documented baseline">
    Go to your VPS provider of choice and order:

    * **`4 vCPU` / `8 GB RAM` / `80 GB NVMe SSD`** (the documented "full-stack-safe" minimum).
    * **Ubuntu LTS** (22.04 or 24.04).
    * **Region close to your exchange** if you want lower latency (e.g., Frankfurt or AWS us-east for Binance).

    <Tip>
      Use voucher code `36nc17472167990` at Netcup for a `€5` discount.
    </Tip>
  </Step>

  <Step title="Initial server hardening">
    Once your VPS is provisioned:

    * Set up SSH key authentication; disable password login.
    * Configure the firewall to allow only ports `22` (SSH), `80` (HTTP), `443` (HTTPS).
    * Enable automatic security updates.
    * Note your VPS's static outbound IP — you'll need it for exchange API key allowlisting. Find it with `curl -s https://api.ipify.org` from your VPS.
  </Step>

  <Step title="Install Docker and docker-compose">
    Install Docker and docker-compose (the only runtime dependencies unCoded needs).
  </Step>
</Steps>

<Check>
  At the end of Stage 1 you should be able to SSH into your VPS, run `docker --version`, and see your VPS's outbound IP recorded somewhere. Take a 5-minute break. Stage 2 is more focused.
</Check>

***

## Stage 2 — Set up exchange API key safely (\~30 min)

This is the **single most security-critical step** in the entire setup. Take it slowly.

<Warning>
  **Three rules that will save you sleep:**

  1. **Never enable withdrawals** on a bot's API key. unCoded does not need it; nothing should.
  2. **Always IP-allowlist** the key to your VPS's outbound IP. A trading-only key without IP allowlist is usable from anywhere if it leaks.
  3. **Use a sub-account** (where the venue supports it) rather than your main wallet. This caps your worst-case exposure to whatever you funded the sub.
</Warning>

<Steps>
  <Step title="Log into your exchange">
    Open the venue's web interface. Most have an "API Management" section under Settings. (See our per-venue guides: [Binance](/exchanges/binance), [Bybit](/exchanges/bybit), [OKX](/exchanges/okx), [Kraken](/exchanges/kraken), [Coinbase Advanced](/exchanges/coinbase).)
  </Step>

  <Step title="Create a new API key">
    Click "Create API." Pass any 2FA challenges. **Save the key and secret immediately** — most venues show the secret only once.
  </Step>

  <Step title="Set permissions correctly">
    * **Enable**: Spot Trading.
    * **Disable**: Withdrawals.
    * **Disable**: Internal Transfers (where exposed as a separate scope).
    * **Disable**: Margin / Futures unless your strategy explicitly uses them.
  </Step>

  <Step title="Set IP allowlist to your VPS's outbound IP">
    Paste the IP you noted in Stage 1. Save the API key.
  </Step>
</Steps>

<Tip>
  **OKX, KuCoin, and Coinbase Advanced** also require a passphrase that you set during key creation. **BitMart** uses a User ID. Save these alongside the key and secret.
</Tip>

***

## Stage 3 — Set up your Telegram bot (\~15 min)

<Steps>
  <Step title="Create a Telegram bot via @BotFather">
    On Telegram, open `@BotFather`. Send `/newbot`. Choose a name. Choose a username ending in `_bot`. Save the token it gives you.
  </Step>

  <Step title="Create a group or channel for notifications">
    Create a Telegram group (or channel). Add your new bot to it. Make the bot an admin if it's a channel.
  </Step>

  <Step title="Find the chat ID and your owner ID">
    Use `@userinfobot` to find your group ID and your personal user ID. Save both.
  </Step>
</Steps>

***

## Stage 4 — Install the unCoded stack (\~60 min)

<Steps>
  <Step title="Pull the unCoded deployment">
    SSH into your VPS. Clone the unCoded deployment template.
  </Step>

  <Step title="Configure environment">
    Create a configuration file with:

    * Your exchange API key, secret, and passphrase (if applicable)
    * Your Telegram bot token, group ID, and owner ID
    * A strong dashboard password (admin)
    * Optionally a viewer-only dashboard password
    * PostgreSQL password (auto-generated is fine)
  </Step>

  <Step title="Start the stack">
    Run the standard `docker-compose up -d` to bring up the four core services: database, trading engine, Telegram notifier, and dashboard. Wait for health checks to go green (\~1 minute).
  </Step>

  <Step title="Open the dashboard">
    Navigate to your VPS's address in a browser. You should see the unCoded login page. Log in with the admin password you set.
  </Step>
</Steps>

<Check>
  By the end of Stage 4, you should see the dashboard's main panel with your exchange showing as "connected" and a green health indicator on every service. Take another break.
</Check>

***

## Stage 5 — Author and validate your first strategy (\~90 min)

<Steps>
  <Step title="Pick a starting mode">
    From the dashboard, navigate to "Modes" and select:

    * **`MinimalMoney`** if you have `$1,500–$3,000`
    * **`LowMoney`** if you have `$3,000–$10,000`
    * **`BasicMode`** if you have `$15,000–$20,000` *(the default for most operators)*
    * **`LongTimeLong`** if you have `$25,000+`

    Set the per-exchange capital allocation appropriately.
  </Step>

  <Step title="Decide whether to author a custom strategy or use the mode's defaults">
    Each mode comes with its own buy-ladder and sell-ladder logic. For your **first 30 days**, we strongly recommend you let the mode's defaults run on a single symbol like `BTCUSDT`. This is the lowest-risk way to learn the bot's normal rhythm.

    After 30 days, you'll have an intuition that lets you author smarter custom strategies in the SignalEditor. See [Strategy Recipes](/strategies/recipes/overview) when you get there.
  </Step>

  <Step title="Configure the active trading pair">
    From the dashboard, set `tradePairs` to `BTCUSDT:4` (or whichever mode number you chose). This tells the bot to trade BTCUSDT under that mode's rules.
  </Step>

  <Step title="Run a backtest first">
    Before you click "Start," go to the Backtester and run a 6-month simulation of your chosen mode on your chosen pair. Read the results carefully — see [How to read your backtest results](/backtesting/reading-results) for the metrics that matter.
  </Step>

  <Step title="If the backtest looks reasonable, run shadow mode">
    Activate the strategy in **shadow mode** — signals fire and are recorded, but no orders go to the exchange. Let it run for 24–48 hours.
  </Step>
</Steps>

***

## Stage 6 — Go live (when you're ready)

<Warning>
  **Do not skip the shadow-mode observation.** Even if the backtest is excellent, real-time tape can produce signals you didn't expect. The 24-48 hour shadow window is what protects you from "I went live and immediately lost money."
</Warning>

<Steps>
  <Step title="Compare shadow signals against expectations">
    The dashboard's signal history shows every shadow signal with its full context. Did the bot fire when you expected? Did it skip conditions you expected to trigger? If yes to both, you're ready.
  </Step>

  <Step title="Promote the strategy to live mode">
    From the dashboard, switch the strategy from `SHADOW` to `LIVE`. The next time the trigger fires, it will produce a real order on your exchange.
  </Step>

  <Step title="Start with a fraction of intended capital">
    For your first live week, run with about **`25%`** of the capital you eventually plan to allocate. This caps your worst-case downside while you learn the bot's live rhythm on your specific market regime.
  </Step>

  <Step title="Watch your Telegram chat for the first trade">
    The first trade close is a milestone. Read the notification carefully — symbol, buy/sell prices, profit, profit %, running totals. If everything matches your expectations, you're operating cleanly.
  </Step>

  <Step title="Schedule your first weekly review">
    Block 30 minutes one week from today. You'll review the dashboard's performance panel, the Telegram chat history, and any reconciliation alerts. This is the rhythm: 1 minute daily glance, 30 minutes weekly review, 90 minutes monthly assessment.
  </Step>
</Steps>

***

## What to expect in the first month

<AccordionGroup>
  <Accordion title="Day 1 — over-checking" icon="clock">
    You will check your Telegram chat way too often. That's fine — it's how you learn what "normal" looks like for your chosen mode and symbol.
  </Accordion>

  <Accordion title="Week 1 — pattern recognition" icon="chart-line">
    You'll start to recognize the bot's daily rhythm: how many trades per day, how long positions stay open, how the sell ladder behaves. By the end of week 1, you should be able to predict roughly what the bot will do today.
  </Accordion>

  <Accordion title="Month 1 — distribution" icon="chart-bar">
    By the end of month 1, you'll have \~30–100 closed trades (depending on mode and regime). Now you have a real distribution to inspect: win rate, average win/loss, drawdown so far. This is when you start asking informed questions about whether the mode fits the regime.
  </Accordion>

  <Accordion title="The biggest mistake to avoid" icon="triangle-exclamation">
    **Do not change the strategy or mode in week 1 in response to short-term noise.** Three trades is not a sample size. Ten trades is barely. Fifty trades on the same setup is the floor for any meaningful conclusion. Operators who change weekly never accumulate a sample.
  </Accordion>
</AccordionGroup>

***

## Common first-week issues

<AccordionGroup>
  <Accordion title="The bot isn't placing orders" icon="circle-question">
    Most often: the kill switch is engaged, or the per-exchange `enabled` flag is off. Check the dashboard. See [Common Issues](/troubleshooting/common-issues) for the diagnostic decision tree.
  </Accordion>

  <Accordion title="Exchange returns -2015 (Invalid API key)" icon="circle-question">
    The IP allowlist on the API key doesn't match your VPS's actual outbound IP. Re-verify with `curl -s https://api.ipify.org` from inside the VPS, then re-paste in the exchange's allowlist. See [Error Codes](/troubleshooting/error-codes).
  </Accordion>

  <Accordion title="My trades are smaller than I expected" icon="circle-question">
    Mode rules split your capital across a buy ladder. For example, BasicMode's 7-split with `25%` first rung means your first buy uses \~`25%` of the per-strategy allocation, not the full amount. This is by design — see [Modes Overview](/strategies/modes/overview).
  </Accordion>

  <Accordion title="I'm getting too many notifications" icon="circle-question">
    Switch the TelegramBot's notification mode from "per rung fill" to "aggregate per close." Look in the dashboard's notification settings.
  </Accordion>
</AccordionGroup>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Module Deep Dives" icon="layer-group" href="/modules/tradingbot">
    Learn how each of the 6 modules works in detail.
  </Card>

  <Card title="Strategy Recipes" icon="book-open" href="/strategies/recipes/overview">
    7 ready-to-implement strategies, from RSI mean-reversion to webhook-driven external signals.
  </Card>

  <Card title="Risk Management" icon="shield" href="/risk-management/overview">
    The kill switch, capital allocation, trailing stops, and reserve discipline.
  </Card>

  <Card title="Glossary" icon="book" href="/concepts/glossary">
    Every term used in this documentation, defined in plain trader language.
  </Card>
</CardGroup>

<Check>
  **Welcome to unCoded.** From here, the most valuable thing you can do is **let the system run for a full month** before changing anything. Discipline beats cleverness, and the bot will teach you more about your own trading instincts in 30 days than any guide can.
</Check>
