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

# Presets

> Saved size and price templates so a repeated order is one click.

A preset is a saved order template: a side, an order type, a size, and — for
limit orders — a price. It carries no market. You point it at whatever market
you are looking at and it fires an order with those settings, so the order you
place most often becomes a single click.

## What a preset holds

| Field      | Meaning                                  |
| ---------- | ---------------------------------------- |
| Order type | `market` or `limit`                      |
| Side       | `BUY` or `SELL`                          |
| Size       | Dollars on a buy, shares on a sell       |
| Price      | Limit orders only — the price to rest at |

Sizing is decided by the side, exactly as it is when you place an order by hand:
a **BUY** preset holds a dollar amount and a **SELL** preset holds a share
count, for market and limit presets alike. Limit presets carry a price; market
presets do not.

The size box in the preset form is labelled for the side you picked and clears
when you switch sides, so a "50" you meant as fifty dollars cannot quietly
become fifty shares. A preset fires the same order whichever surface you use it
from.

## Where you create them

* **Web terminal** — Settings lists your presets and lets you create and delete
  them.
* **Chrome extension** — the popup's Presets tab does the same, and is the only
  place you can **edit** one.

Presets are stored on your account, not on a device, so the list is the same in
both places. One created in the extension shows up in the terminal's Settings
immediately.

<Note>
  To change a preset from the terminal, delete it and create it again. There is
  no edit control there; the extension edits in place.
</Note>

## Where you use them

* **Web terminal** — the trade panel on a market shows your presets and fires
  the matching order against that market's selected outcome.
* **Chrome extension** — the panel Ballista injects into Polymarket lists your
  presets next to the market you are reading, so you can act without leaving the
  page.

<Note>
  Presets are a terminal and extension feature. The Telegram bot has no preset
  list — orders there are entered each time.
</Note>

## The six-per-slot cap

You can hold **6 presets per combination of order type and side**. That is six
market buys, six market sells, six limit buys and six limit sells.

Hit the cap and creating another is refused; delete one you are not using to
make room. The cap is per slot, not overall, so running out of market buys does
not stop you saving another limit sell.

## What to read next

<CardGroup cols={2}>
  <Card title="Placing orders" icon="chart-line" href="/guides/orders">
    What a preset is actually submitting.
  </Card>

  <Card title="Price alerts" icon="bell" href="/guides/alerts">
    Be told when a market reaches your price instead of watching it.
  </Card>
</CardGroup>
