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

# Placing an order

> The trade panel: outcome, side, order type, size, and the quick-order chips.

The trade panel sits at the top right of every [market page](/terminal/market-page).
Orders go to Polymarket's order book — see [Orders](/guides/orders) for what happens
after you submit one.

## Before you can trade

The panel has three things it can say instead of a form:

* **Sign in to trade this market** — you are signed out. Connect and it fills in.
* **Set up your trading wallet** — a one-time provisioning step. It can take a minute,
  and once done you never see it again.
* **This market is not accepting orders** — the market is closed, has stopped taking
  orders, or has no order book. Nothing you can do from here.

## The four controls

<Steps>
  <Step title="Yes or No">
    The top toggle shows both current prices. It is the same selection the chart and
    the order book use, so changing it here changes them too.
  </Step>

  <Step title="Buy or Sell">
    Buy opens or adds to a position in the selected outcome. Sell closes it.
  </Step>

  <Step title="Market or Limit">
    Market takes what the book is offering. Limit rests at a price you name.
  </Step>

  <Step title="Size">
    **Buys are sized in USDC** — how much you want to spend. **Sells are sized in
    shares** — how much of your position you want to close. That holds for market and
    limit orders alike.
  </Step>
</Steps>

Changing outcome, side or order type clears the size box, because the unit it is
counted in has just changed.

## Limit price

A limit order adds a **Limit price (¢)** box above the size. It arrives prefilled
from the book — the best ask when you are buying, the best bid when you are selling —
and keeps following the book until you type in it. Prices are whole cents from 1 to
99\.

## Limit buys convert to shares

You type dollars, and a line under the box shows what that buys at your limit price:
**≈ 34.48 shares**. That share count is the order — the terminal converts before it
submits, rounding **down** to the nearest hundredth of a share, so the order never costs
more than the amount you typed. **Total cost** in the preview is the true figure, which
can come out a fraction under what you entered.

If the amount is too small to buy even 0.01 shares at that price, the line says so
instead and the button stays disabled.

## Max

When you are **selling** and hold a position in the selected outcome, a **Max** link
appears above the size box with the number of shares you hold. Clicking it fills the
box. It is there for market and limit sells alike.

The figure is rounded down to two decimals, matching how order sizes are rounded when
the order is placed, so Max is always a size that will go through.

## The preview

Under the size box:

* Buying shows **Available** — your USDC balance.
* Selling shows **Position** — the shares you hold in this outcome.

Limit orders with a valid price and size add more. A limit **buy** shows **Total cost** —
the shares it converted to, times your price — and **Payout if Yes** (or **if No**),
which is what the position returns if that outcome resolves true: one dollar per share.
A limit **sell** shows **Proceeds**, price × shares.

Market orders show no cost preview, because the price is whatever the book gives you.

If a buy is larger than your balance, the panel says so in red before you can submit it.

## Submitting

The button names what it is about to do — *Buy Yes*, *Sell No*. It stays disabled until
the order is complete and clears the form's own floor: a buy of either type has to spend
at least a cent, a limit sell has to be worth at least a cent at your price, and a market
sell has to be at least 0.01 shares.

<Note>
  That floor is a check in the form, not the real minimum. Polymarket enforces its own
  minimum order size on top of it, so a very small order can pass this check and still
  be rejected after it leaves the terminal.
</Note>

On success the size box clears. A resting limit order appears under **My orders** on the
same page; a market order that filled will not be there — look under **My fills**, since
that tab lists only orders still working.

## Quick orders

If you have saved presets, they appear at the bottom of the panel as chips under
**Quick orders**, labelled with what they will do:

* `BUY $25 MKT` — spend \$25 at market
* `SELL 100 MKT` — sell 100 shares at market
* `BUY $25 @ 42¢ LIM` — rest a limit buy, \$25 worth, at 42 cents
* `SELL 100 @ 58¢ LIM` — rest a limit sell for 100 shares at 58 cents

Chips follow the same units as the form: buy presets carry a dollar amount, sell presets
a share count. A limit buy converts to shares at the preset's own price when it fires,
rounded down, exactly as the form does — hover a chip to see the share count it resolves
to.

A chip fires immediately on click. It uses **the outcome currently selected above** —
the header says which — and takes nothing from the rest of the form.

A preset that cannot produce a valid order does not appear here at all. It is flagged on
its row in [Presets](/terminal/presets) instead, so a missing chip is explained where you
made it rather than being a silent gap in this panel.

**Manage** beside the header opens [Presets](/terminal/presets).

## What to read next

<CardGroup cols={2}>
  <Card title="Orders" icon="receipt" href="/guides/orders">
    What happens to an order after you submit it.
  </Card>

  <Card title="Presets" icon="bolt" href="/terminal/presets">
    Saving the orders you place often.
  </Card>
</CardGroup>
