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

# Positions tab

> Everything you hold, with an inline market or limit order to sell out of it.

The **Positions** tab lists every open position and gives each one a sell form, so
closing a trade never leaves the popup.

## The list

Each row shows the market title, the outcome you are on, the percentage move from your
average entry price — green when you are up, red when you are down — the current value of
the position and your share count. The list refreshes roughly every 30 seconds.

Press a row to expand it.

## Inside a position

Expanding a row reveals three figures:

* **Avg Price** — what you paid, in cents per share.
* **Cur Price** — what it trades at now.
* **Size** — how many shares you hold.

Two badges can appear here as well. **Redeemable** means the market has resolved and the
position is eligible to be cashed out. **Mergeable** means you hold both sides of the same
market, which can be merged back into USDC.

<Warning>
  Both are **status labels passed through from Polymarket, not buttons**. Ballista
  cannot redeem or merge a position anywhere — not in the extension, the bot or the
  terminal. Do it on Polymarket itself.
</Warning>

## Selling out

Under those figures is the sell form. It is prefilled to close the whole position: your
full share count, and — in limit mode — the current price.

<Steps>
  <Step title="Choose Market or Limit">
    **Market** sells straight into the book at whatever it is trading at.
    **Limit** rests at your price until it fills.
  </Step>

  <Step title="Set the size">
    Edit the share count to sell part of the position instead of all of it.
  </Step>

  <Step title="Set a price (limit only)">
    A number between 0 and 1, where `0.72` is 72¢.
  </Step>

  <Step title="Press Sell">
    The button spells out what it is about to do — *Sell 240 shares*.
  </Step>
</Steps>

A market sell is done as soon as it fills. A limit sell rests on the book: it appears
under **Open Orders** in the [History tab](/extension/history-tab), where you can cancel
it. Read [Orders](/guides/orders) for how the two order types behave.

<Note>
  This form only sells. To open a new position, search from the
  [Markets tab](/extension/markets-tab) or use the
  [on-page panel](/extension/on-page-panel) while you are reading a market on
  Polymarket.
</Note>
