> For the complete documentation index, see [llms.txt](https://docs.unstable.run/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unstable.run/for-users/buy-sell.md).

# Buying & selling

Every token page on Unstable has a **trade panel** in the top-right column. It handles both buy and sell directions with the same two-tx flow.

## Anatomy of the panel

| Row                | What it does                                                                                          |
| ------------------ | ----------------------------------------------------------------------------------------------------- |
| Buy / Sell tabs    | Flip direction. Everything below re-labels.                                                           |
| Balance chip + MAX | Live wallet balance in the currency you're spending. MAX auto-fills.                                  |
| Amount input       | Type manually or use the quick buttons.                                                               |
| Quick buttons      | Fixed dollar amounts on Buy ($10, $50, $100, $500); percentage buttons on Sell (25%, 50%, 75%, 100%). |
| "You receive"      | Live estimate of the other side of the trade at the current pool price.                               |
| "Price impact"     | Rough estimate of how much your trade will move the price.                                            |
| Buy / Sell button  | Executes the two-tx flow.                                                                             |
| Fee note           | Reminder that the pool charges 1% and gas is a fraction of a cent.                                    |
| Side stats         | Market cap, 24h volume, holder count, approximate liquidity.                                          |

## The MAX button

`MAX` fills the amount input with your full spendable balance in the current currency:

* **On Buy** — MAX fills with your USDT0 balance **minus a 0.5 USDT gas buffer**. USDT0 is Stable's native gas token, so a literal 100% spend would leave nothing to pay the swap fees; the buffer keeps the transaction reliably confirmable.
* **On Sell** — MAX fills with 100% of your token balance. Selling a token doesn't need that token for gas — you pay in USDT0 — so a full sell is always safe.

The button is greyed out when the balance is zero or when you haven't connected a wallet.

## Quick amount buttons

The four small buttons below the input adapt to the side:

**Buy** (dollar-fixed)

`$10` — good for testing a fresh pool

`$50` — mid-size entry

`$100` — standard entry

`$500` — sniper-tier entry

**Sell** (percentage of balance)

`25%`, `50%`, `75%`, `100%` — computed from your live balance at click time. Handy for taking profit in fractions.

## The two-tx flow

Every trade on Unstable runs through **canonical Uniswap V3 SwapRouter02**, so two transactions:

1. **Approve** — you're granting the router permission to move exactly the amount you're spending from your wallet.
2. **exactInputSingle** — the actual swap. Tokens land in your wallet the moment this confirms (sub-second).

Both transactions cost roughly $0.001-$0.002 in gas, paid in USDT0. Total real trading cost per round-trip: **the 1% pool fee, twice**. There is no separate router fee, no bot tax, no protocol skim beyond the pool's 1% (which goes to the LP position — see [Fees & creator rewards](/under-the-hood/fees-and-rewards.md)).

## Slippage & impact

The trade panel doesn't ship an explicit slippage slider. Instead, `amountOutMinimum` is set to `1` — meaning the swap only reverts if the pool returns literally nothing. This is fine for fresh V3 pools with single-sided liquidity: the tick is deterministic at launch, and MEV bots don't sandwich shallow pools economically.

If a pool has grown enough liquidity that a slippage cap makes sense (typically past several thousand dollars of TVL), a future release will surface a max-slippage control. For now: eyeball the "Price impact" row before submitting.

## What can go wrong

| Message                            | Meaning                                                                             |
| ---------------------------------- | ----------------------------------------------------------------------------------- |
| "Connect wallet first"             | You clicked Buy/Sell without a wallet connected. Fix: click Connect in the header.  |
| "Enter amount"                     | Amount field is empty or zero. Fix: type something.                                 |
| "Trade failed: insufficient funds" | Not enough of the token you're spending. Fix: MAX with a smaller buffer, or top up. |
| "Trade failed: user rejected"      | You (or your wallet) declined the transaction. Retry when ready.                    |

## Next

* [Reading the chart](/for-users/reading-the-chart.md) — what the candles mean
* [Trades & holders panel](/for-users/trades-and-holders.md) — the two live feeds under the chart


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.unstable.run/for-users/buy-sell.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
