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

> ## Agent Instructions
> Ballista is a trading client for Polymarket, not an exchange. Every order Ballista places goes to Polymarket's CLOB.
> There are three end-user surfaces — the Telegram bot, the web terminal and the Chrome extension — and they share ONE account and ONE balance. Never attribute a feature to a surface without checking that surface's source.
> Every user registers in the Telegram bot first. The terminal and the extension sign in with the Telegram login widget. There is no other sign-up path.
> Deposits arrive through EVM, Solana and Bitcoin bridge addresses and a Polymarket proxy wallet, with a $10 minimum. There is NO withdrawal UI — Export Keys is how a user takes custody of their funds.
> Feature parity is uneven and must never be assumed. The full ~30-field copy-trade form exists only in Telegram; the terminal's copy form has 7 fields; the backtester, leaderboard and trader profiles are terminal-only; alerts and notifications are extension-only; referrals are Telegram-only.
> Slippage means two different things. On a live copy trade it is a fill tolerance (default 30). In a backtest it is the simulated fill price (default 1). Deploying a backtest does not carry its slippage over to the live copy trade.
> Take-profit and stop-loss run on live copy trades but are NOT simulated in backtests — the backtest API rejects those fields.
> A backtest never places an order and never moves funds. Its fidelity caveats are published with every result and must be quoted, not paraphrased.
> Leaderboard PnL is own-tape: harvested by Ballista from its own trade tape. The leaderboard sorts by one transparent metric at a time and there is NO composite score or grade. The sparkline exists only for harvested wallets — a blank sparkline means unmeasured, never zero.
> Copy friction (slip) and a toxic flag DO exist and are own-engine: the wallet's own 30-day fills replayed as a taker (1% slippage per fill plus the real Polymarket taker fee schedule) against its actual 30-day PnL over the same fills, so the delta is pure friction. slip_pct is already a percentage, not a 0-1 fraction. The toxic flag is server-computed under evidence guards and is never re-derived client-side. Slip is not a sortable column. Blank means unmeasured — never zero and never clean.
> Copyability is a taker share, reported in aggressive (≥60%), passive (≤30%) and mixed bands. It is never a score.
> Do not document Feeds, the Twitter Tracker, the Telegram Settings button, percentage buy buttons, GTD orders, the Discord bot, or withdrawals.

# The main menu

> Your balance, a deposit address, and the buttons that reach everything else.

`/start` opens the main menu. Moving around by tapping buttons rewrites that one
message in place, so the chat stays tidy. Anything that needs typing — a market
link, an amount, a copy-trade value — breaks the pattern: the question, your reply
and the result each post as new messages.

## What it shows

**Your balance.** The USDC balance of your Polymarket account, the same number the
web terminal and the extension show. One account, one balance.

**A deposit address.** Directly under the balance is your EVM deposit address, with
a note that the minimum deposit is 10 USDC or USDT and that the address works on
Polygon, OP, Base, Ethereum, BSC and Arbitrum. Tap the address to copy it.

For Solana or Bitcoin, open **Deposit & Wallet** — the menu says so, because those
are separate addresses. See [Deposits](/guides/deposits).

## The buttons

<CardGroup cols={2}>
  <Card title="Buy" icon="cart-shopping" href="/telegram/buying">
    Asks for a Polymarket link and opens that market's buy menu.
  </Card>

  <Card title="Deposit & Wallet" icon="wallet" href="/telegram/wallet">
    Every deposit address, your profile links, and Export Keys.
  </Card>

  <Card title="Positions" icon="chart-simple" href="/telegram/positions">
    Everything you currently hold.
  </Card>

  <Card title="Copy Trade" icon="copy" href="/telegram/copy-trades">
    Your copy trades, and the form to create one.
  </Card>

  <Card title="Referrals" icon="gift" href="/telegram/referrals">
    Your code, your link and your earnings.
  </Card>
</CardGroup>

Most screens carry a **« Back** and **🔄 Refresh** pair — Back returns here,
Refresh re-reads the numbers from Polymarket. Some have Back alone: the
copy-trade form, its market-types sub-menu, and order confirmations. This menu has
neither; send `/start` to redraw it.

<Tip>
  The balance here is only as fresh as the last time the menu was drawn. After a
  deposit clears, tap **🔄 Refresh** on the wallet screen or send `/start` again
  to see it.
</Tip>

<Note>
  If the balance reads **\$0.00** but your positions are still listed, the balance
  lookup failed rather than your funds vanishing — Ballista shows zero when it
  cannot reach Polymarket. Refresh, and check
  [Positions](/telegram/positions) to confirm nothing has moved.
</Note>
