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

# Copy trading

> The terminal's simplified copy-trade form, the active list, and execution history.

Copy trading mirrors another wallet's trades into your account. The concept — what
gets copied, when, and what it costs — is in [Copy trading](/guides/copy-trading);
this page is about the screen.

The terminal's form is deliberately short. It exposes seven of the settings a copy
trade has; **the full form is in the Telegram bot**. Anything you do not set here
takes its default.

<Info>
  Choosing a wallet first? Read [Choosing a trader](/guides/choosing-a-trader), and
  use the [Leaderboard](/terminal/leaderboard) and
  [trader profiles](/terminal/trader-profile) to shortlist one.
</Info>

## The form

<AccordionGroup>
  <Accordion title="Target wallet">
    The address you want to mirror. Paste it in full.
  </Accordion>

  <Accordion title="Label (optional)">
    A name for your own benefit. It is what the active list shows instead of
    "Untitled".
  </Accordion>

  <Accordion title="Sizing, and its value">
    **% of target** copies a proportion of what they trade — 100 means the same size
    they used. **Fixed USDC** spends the same amount on every copied trade whatever
    they did.
  </Accordion>

  <Accordion title="Buy order">
    Market or limit, for the orders this copy trade places.
  </Accordion>

  <Accordion title="Buy slippage %">
    How far past the expected price an order may fill. Live, slippage is a
    **tolerance**: an order that would fill outside it does not fill at all. Left
    blank, the default applies.
  </Accordion>

  <Accordion title="Max / trade (USDC)">
    A ceiling on any single copied order. Blank means no ceiling.
  </Accordion>

  <Accordion title="Total spend cap">
    A ceiling on everything this copy trade will ever spend. Blank means no cap.
  </Accordion>
</AccordionGroup>

The target wallet and the sizing value are required; everything else can be left
alone. There are no sell-side inputs on this form and no filters — no price band, no
market filters, no reverse-copy switch. Those exist, and they are set in the Telegram
bot's [full copy-trade form](/telegram/copy-trade-form). The settings themselves are
documented in [Copy-trade settings](/guides/copy-trade-settings).

## What appears under the wallet field

Once the address you have typed is a complete wallet address, two things can show up.

A **passive wallet** warning appears when at or under 30% of that wallet's volume
crossed the spread. A copy trade places market orders, so it pays the spread a passive
wallet was collecting — expect the copied version to earn less than the leader
whatever their P\&L looks like. It is a warning, not a block: dismiss it and carry on.
Dismissing it applies to that address only.

Below that, a small research panel shows the wallet's total, realized and unrealized
P\&L and its most recent activity, so you can sanity-check the address without leaving
the page. It comes from an outside data source and can come back empty.

## Active copy trades

Every copy trade you have, with:

* **Target** — your label, or "Untitled", above the shortened address
* **Sizing** — the percentage or fixed amount
* **Active** — a switch
* a delete button

The **Active** switch turns mirroring on and off. It changes only whether the copy trade
is running — everything else it holds is untouched, including settings this list does
not show and settings you made somewhere else. Switch it off and back on and the copy
trade resumes exactly as it was. A copy trade created by
[deploying a backtest](/terminal/deploy-a-backtest) arrives switched off, and this is
the switch that starts it.

**Delete** takes the copy trade off this list and stops it mirroring. Its execution
history stays in the panel below, so deleting a copy trade never erases the record of
what it did.

## Execution history

Every order this account's copy trades have placed, newest first:

| Column     | What it is                 |
| ---------- | -------------------------- |
| **When**   | When the order was placed. |
| **Side**   | Buy or sell.               |
| **Shares** | The size of the order.     |
| **Price**  | In cents.                  |
| **Status** | Where the order got to.    |

Five statuses:

| Status        | What it means                                                        |
| ------------- | -------------------------------------------------------------------- |
| **placed**    | Sent to the book and resting. Not filled yet.                        |
| **partial**   | Some of it matched, the rest did not.                                |
| **filled**    | Fully executed.                                                      |
| **cancelled** | Finished without completing — it keeps whatever had already matched. |
| **failed**    | Never got on the book.                                               |

Shares and price are recorded even for an attempt that failed, so a failed row still
tells you what was tried. A dash in either means the figure could not be read, not that
nothing was attempted.

The table holds the newest 50 rows and does not page. When it is full it says
*"Showing the latest 50 executions"* along the bottom, so a longer history is never
silently cut off.

## What to read next

<CardGroup cols={2}>
  <Card title="Copy-trade settings" icon="sliders" href="/guides/copy-trade-settings">
    Every setting a copy trade has, including the ones this form omits.
  </Card>

  <Card title="Choosing a trader" icon="user-check" href="/guides/choosing-a-trader">
    Picking a wallet worth mirroring.
  </Card>
</CardGroup>
