# Read me

**Fresh air for memecoin trading on TON.**

Tonton is a bonding-curve launchpad on TON: anyone can launch a jetton in one click, anyone can trade it on the curve, and once a token's curve fills it graduates automatically to STON.fi where it trades against TON as a normal AMM pair. No protocol fee on launch — the only TON you spend is gas.

This documentation covers:

* **Getting started** — connect a wallet and make your first trade
* **How it works** — the bonding curve math, fees, and graduation
* **Buying & selling** — what actually happens on chain when you trade
* **Launching a token** — every field, every cost, what to expect
* **SDK** — `@tontonfun/sdk` for integrators who want to build on top of tonton from their own apps
* **REST API** — the indexer endpoints (`api.tonton.fun`) for anyone building dashboards, bots, or analytics
* **FAQ** — the questions that come up most

## Quick links

* App: [tonton.fun](https://tonton.fun/)
* API: [api.tonton.fun](https://api.tonton.fun/)
* Mainnet factory: `EQAZoBb1c43CEorgTx1ctDIe7MwMy29untZxRLRWVR6PmbIu`
* SDK on npm: [`@tontonfun/sdk`](https://www.npmjs.com/package/@tontonfun/sdk) — [![npm](https://img.shields.io/npm/v/@tontonfun/sdk.svg?color=15c2df)](https://www.npmjs.com/package/@tontonfun/sdk)

## TL;DR for traders

1. Open [tonton.fun](https://tonton.fun/) and click **Connect** to link a TON wallet.
2. Browse **Markets** for live tokens.
3. Pick one, type a TON amount, hit **Buy**. Sign in your wallet.
4. To sell: same flow with the **Sell** tab.

## TL;DR for token creators

1. Click **Launch a token**.
2. Fill in name, ticker, image. Socials optional.
3. Sign the transaction (0.5 TON gas — *no protocol fee*).
4. Your token gets a tradable bonding curve. When \~3,001 TON of buyer spend has flowed in, it graduates to STON.fi automatically.

## TL;DR for developers

```bash
npm install @tontonfun/sdk @ton/core @ton/ton
```

```ts
import { getCurveState, getTonClient, quoteBuyOffchain, tonToNano } from "@tontonfun/sdk";

const client = getTonClient();
const state = await getCurveState(client, "EQ...");
const out = quoteBuyOffchain(tonToNano(1), state.tokensSold, state.tonCollected);
console.log("1 TON buys", out, "jettons");
```

See the [SDK section](/sdk/read-me.md) for the full reference.


---

# Agent Instructions: 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:

```
GET https://docs.tonton.fun/read-me.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
