> 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/under-the-hood/fair-launch.md).

# Fair-launch model

"Fair launch" gets thrown around a lot in memecoin marketing. On Unstable it means something specific and enforceable:

* **No creator vault.** 100% of the supply is minted into the LP position at t=0. There is no reserve, no team allocation, no locked pot the deployer can drain later.
* **No vesting cliff.** Whatever the deployer wants to own has to be **bought through the pool**, capped at 5% of supply at launch time.
* **No pre-sale.** There's nowhere private — every trade goes through the canonical Uniswap V3 pool from the very first block.
* **Immutable metadata.** Name, symbol, logo, description, socials — every field is set once in the constructor. Nobody, including the deployer, can rewrite them.

## The supply story

Every Unstable token is a fixed-supply ERC-20 with:

* `totalSupply = 1_000_000_000 * 10**18` (1 billion tokens with 18 decimals)
* No `mint()` function on the token contract
* No `burn()` function (though anyone can send to `0x0…dEaD` if they want)
* No `pause()`, no `blacklist()`, no `owner()`

The token contract inherits nothing weird — just OpenZeppelin's `ERC20` + `ERC20Permit` (for EIP-2612 gasless approvals). The bytecode is deterministic across every launch, which is why StableScan auto-verifies subsequent tokens once the first is verified.

## The 100%-to-LP mechanism

Immediately after `CREATE2`-deploying the token, the factory:

1. Approves the Uniswap V3 NonfungiblePositionManager (NFPM) to spend the full 1B supply.
2. Creates the `TOKEN/USDT0` pool at the 1% fee tier if it doesn't exist yet, and initialises it at the anchor tick.
3. Verifies the initialised tick matches the anchor exactly (defence against front-run pool init at a hostile price).
4. Mints a **single-sided liquidity position** — 100% of the supply on the token side, zero USDT0 on the quote side — with the position NFT sent directly to the LP Locker contract.

The NFT never touches the deployer's wallet. There is no intermediate address the deployer can point at. `NFPM.ownerOf(positionId) == LPLocker` from the first block.

## The 5% cap

The one path by which a deployer can end up holding any of their own token is the optional **initial buy** — swapping USDT0 through the freshly-created pool inside the launch transaction. The factory has a hardcoded cap:

```solidity
uint16 public constant INITIAL_BUY_BPS_MAX = 500;   // 5% of supply
// ...
if (tokensOut > MAX_INITIAL_BUY) revert InitialBuyExceedsCap();
```

If the swap would leave the deployer holding more than 50,000,000 tokens (5% of 1B), the entire launch transaction reverts. No partial fill, no re-attempt with less — the whole thing rolls back.

See [Optional initial buy](/launching-a-coin/initial-dev-buy.md) for the practical side.

## What this buys you

If you're a trader looking at a fresh Unstable launch, the fair-launch model guarantees:

* At block-of-launch, **no wallet holds more than 5% of supply** (assuming an initial buy at all).
* Every trade **funnels through the same pool** as yours.
* The **metadata is what it appears to be** — nobody can rename or resocial after launch.
* The **supply won't change** — no dilution surprise later.

If you're a builder looking to integrate:

* Every launched token has an **identical runtime bytecode**, differing only in constructor args. Indexers can pattern-match.
* Every launch emits **exactly one `TokenLaunched` event** with the full metadata bundle.
* The pool address is deterministic from `(token, USDT0, 10000)` via V3 Factory.

## What it doesn't buy you

The fair-launch model doesn't:

* Prevent someone else — including a bot — from sniping the launch harder than you did.
* Guarantee liquidity or price.
* Prevent the deployer from selling their initial buy later.
* Make the token a good investment.

It just guarantees that the *starting conditions are fair*. What happens after is a market.

## Next

* [Pool & starting price](/under-the-hood/pool-and-price.md) — where the \~$2K anchor comes from
* [Fees & creator rewards](/under-the-hood/fees-and-rewards.md) — the ongoing revenue side
* [LP position lock](/under-the-hood/lp-lock.md) — how the "locked LP" claim actually works


---

# 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/under-the-hood/fair-launch.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.
