> 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/resources/faq.md).

# FAQ

## General

### What chain is Unstable on?

**Stable mainnet** (chain ID `988`). USDT0 is the native gas token. See [About Stable chain](/overview/stable-chain.md).

### Do I need ETH?

No. Everything on Stable — trades, launches, gas, fees — is denominated in USDT0. If you're bridging from Ethereum or another chain, you bridge USDT/USDT0, not ETH.

### Is there a token for Unstable itself?

Not currently. Unstable's revenue is the 20% treasury cut of every launched token's LP fees; that flows to a platform-controlled treasury address, not to a governance token.

### Is Unstable open source?

Yes. Contracts are on-chain (some source-verified, some pending verification — see [Verification](/on-chain-reference/verification.md)). The frontend runs on Vercel and its source is available.

## Trading

### What fees do I pay when I trade?

* **Pool fee**: 1% of the trade value. Split between the LP position (which ultimately routes to the creator + treasury) and the pool's internal accounting.
* **Router / protocol fee**: 0. There is no separate router markup.
* **Gas**: \~$0.001-$0.002 per transaction, always paid in USDT0.

So a $100 buy costs $100.00 in USDT + \~$0.002 gas → you receive \~$99 worth of tokens post-fee.

### Why does buying show two transactions?

Standard ERC-20 flow. First tx approves the router to move your USDT; second tx runs the swap. It's how every Uniswap V3 trade works.

### Where does the "You receive" estimate come from?

It's a linear estimate at the current spot price (`amount / price` for buys, `amount * price` for sells). For fresh pools with concentrated liquidity, the actual received amount includes some V3 slippage — expect the real number to be slightly lower.

### Can I trade Unstable tokens elsewhere?

Yes. Every Unstable pool is a canonical Uniswap V3 pool, so:

* [swap.stable.xyz](https://swap.stable.xyz) works.
* Any V3-aware aggregator or bot works.
* You can call SwapRouter02 directly.

## Launching

### How much does it cost to launch?

**$2 USDT** deploy fee + \~$0.02 gas + optional initial buy amount. That's it.

### Can I skip the deploy fee?

No. The $2 fee is a hardcoded parameter routed to the platform treasury on every launch.

### Can I launch on a different chain?

Unstable currently lives only on Stable mainnet. Other chains aren't planned right now.

### Can I change my token's name / logo / socials after launch?

No. Every metadata field is `string public` set once in the constructor. This is the trust guarantee — nobody can rename or resocial after the fact.

### Can I add more supply later?

No. Total supply is fixed at 1B, minted once in the constructor. There is no `mint()` function on the token contract.

### What if two people launch a token with the same name?

Fine. Names aren't unique — anyone can call their coin "Doge" and get a live pool. Token contract addresses are unique (`CREATE2` derives them from the deployer, nonce, name, and symbol), so nothing conflicts on-chain.

### What's the 5% initial buy cap?

If your `usdtIn` argument would return more than 5% of supply (50M tokens), the entire launch reverts. This keeps launches fair — no wallet leaves the launch transaction holding more than 5% of the token. See [Optional initial buy](/launching-a-coin/initial-dev-buy.md).

## Fees & rewards

### How much do I earn as a creator?

**80% of every 1% trade fee**, forever. Concretely: if $10,000 of volume flows through your pool, that's $100 in pool fees, and $80 is yours.

### How do I collect fees?

Someone — you, a keeper, anyone — calls `collectFees(YOUR_TOKEN)` on the LP Locker. The funds route automatically to the creator + treasury slots. A dedicated UI for this ships in a future release; until then, use `cast send` or your favourite dev tool. See [Fees & creator rewards](/under-the-hood/fees-and-rewards.md).

### Can I automate fee collection?

Yes. The function is permissionless — set up any cron job or keeper bot to trigger it at whatever cadence you like.

### What if I lose access to my creator wallet?

If your current creator wallet is still functional, call `updateCreator(token, newAddress)` on the LP Locker to move the recipient slot. If it's fully gone, the fees continue to accrue to that address indefinitely — there is no recovery path.

### Can I change the fee split?

No. The 80/20 split is an immutable constant on the LP Locker. The number is not configurable at launch time either.

## Security

### Where does the LP go?

Directly into the Unstable LP Locker contract. It's not in your wallet. See [LP position lock](/under-the-hood/lp-lock.md) for the full mechanics.

### Is the LP truly permanent?

**In its current test-phase configuration**: the position is held by the LP Locker, and any move requires an operator role that also pays out pending fees first. The operator role is planned for renouncement (`renounceAdmin()`) at production launch — at that point the lock becomes truly permanent. Check the current state:

```bash
cast call 0xbB027B8210E98a19d7B90929B8baA77Ec09F0f96 "admin()(address)"
```

* `0x0000000000000000000000000000000000000000` → admin renounced, lock is permanent.
* Otherwise → operator role still active for test-phase emergencies.

### Are the contracts audited?

Not by a formal third-party audit yet — this is on the roadmap for production launch. In the meantime the contracts are:

* Source-verified where marked (see [Verification](/on-chain-reference/verification.md)).
* Fork-tested (`forge test`) with 11 passing tests covering the whole launch flow, initial-buy cap, deploy fee routing, standard router swaps, fee split, and admin recovery paths.
* Minimal — the LPLocker is < 250 lines of Solidity, the factory is < 400.

### What if the RPC I'm using goes down?

Every read the frontend does is served through a Vercel Edge cache with `stale-while-revalidate`, so short RPC outages don't blank the UI. If you're building your own client, use any V3-compatible RPC on Stable — the contracts are chain-native and don't depend on any specific provider.

### What if `unstable.run` goes offline?

Every user action — trading, collecting fees, updating fee recipient — works directly against the on-chain contracts. You don't need Unstable's frontend to interact with your token or your fees. All of it is `cast`-callable.

## Anything else

If your question isn't answered here, the source of truth is the on-chain contracts (see [Contract addresses](/on-chain-reference/contracts.md)) and the event streams (see [Events & indexing](/on-chain-reference/events.md)). Everything else is convenience.


---

# 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/resources/faq.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.
