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

# History tab

> Orders still resting on the book, how to cancel them, and the record of what has filled.

The **History** tab has two sections: what is still working, and what has already
happened.

## Open Orders

Anything still resting on Polymarket's order book appears here — limit orders you placed
that have not filled yet, from any Ballista surface. Each row shows a **BUY** or **SELL**
badge, the size in shares and the price in cents.

The list refreshes about every 15 seconds, so a fill drops off on its own shortly after
it happens.

### Cancelling

Press the **×** on the right of a row. It turns into a spinner while the cancellation
goes through, and a confirmation appears at the top of the popup. The order leaves the
list once Polymarket has accepted the cancellation.

<Note>
  The size on an open order is the size you submitted, not the part still outstanding.
  If some of it has already traded, those shares are in the
  [Positions tab](/extension/positions-tab) and the fill is in the list below.
</Note>

## Fill History

Below the separator is every fill: side, size in shares, price in cents, and when it
happened in your local time. This section refreshes about once a minute.

Fills are the record of what actually traded, so a single large order can appear as
several rows.
