> For the complete documentation index, see [llms.txt](https://robinfun.gitbook.io/robinfun-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://robinfun.gitbook.io/robinfun-docs/graduation.md).

# graduation

**Graduation** is the moment a token leaves the bonding curve and lists on a public Uniswap market with permanently locked liquidity.

## The trigger

A token becomes ready to graduate once its curve raises **$9,300** (converted to ETH at the token's creation snapshot), which corresponds to a market cap of **≈ $44,100**.

## What happens at graduation

{% stepper %}
{% step %}

### Curve trading stops

Curve trading stops, and the token's `readyToGraduate` flag is set.
{% endstep %}

{% step %}

### Permissionless finalization

A **permissionless** `graduate` call finalizes the migration — anyone can send it, and the app attempts it automatically after the filling buy.
{% endstep %}

{% step %}

### Liquidity is added

Of the ETH raised, **$9,000 is paired with the reserved token supply** into a new **Uniswap V2 pool**, and **$300 goes to the protocol treasury**.
{% endstep %}

{% step %}

### LP tokens are burned

The resulting **LP tokens are 100% burned** — sent to a dead address. No one, including the team, can ever remove that liquidity.
{% endstep %}

{% step %}

### Trading continues on Uniswap

The token's 1% fee switches to its on-market mode (see [Fees](broken://pages/4507dfe7eef9af897ddbef4be256c4a624431389)), and trading continues on Uniswap at the pool's opening price — set by the $9,000 of ETH paired against the reserved supply.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Between the moment the curve fills and the moment `graduate` executes, buys and sells are paused. Finalization is permissionless and normally takes seconds.
{% endhint %}

## Hardened against attacks

Graduation is designed to be robust against third-party interference:

* **Decoupled from trading** — graduation is a separate on-chain action, so a DEX-side issue can never freeze a live curve.
* **Direct-to-pair liquidity** — liquidity is added directly to the pair rather than through a router, so the listing can't be sandwiched at the seam.
* **Pool-seeding immune** — if someone pre-seeds the Uniswap pool at a wrong price to grief the listing, the factory first rebalances the pool back to the correct target price with a single swap, then adds the remaining liquidity at the true ratio. Graduation can't be bricked or mispriced by a third party.

## After graduation

* The token trades on Uniswap; its liquidity is locked forever (LP burned).
* The **1% fee still applies** on the Uniswap market, split the same way (see [Fees](broken://pages/4507dfe7eef9af897ddbef4be256c4a624431389)).
* The token page keeps working as before — price chart, market cap, holders, trades, and the [livestream](broken://pages/dd3a381857e5ee474e98a0d6c2eb1d9f1fdb636c).


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://robinfun.gitbook.io/robinfun-docs/graduation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
