> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kas.fun/llms.txt
> Use this file to discover all available pages before exploring further.

# 代币生命周期

> KasFun 代币从创建到 DEX 的各个阶段

## 总览

每个 KasFun 代币都会经历以下阶段：

```mermaid theme={null}
graph LR
    A["创建<br/>代币部署"] --> B["交易中<br/>Bonding Curve<br/>买入 & 卖出"]
    B --> C["已填满<br/>等待 DEX 迁移"]
    C --> D["已上线<br/>DEX 交易"]
    D --> E["CTO<br/>社区治理"]
```

## 各阶段详解

### 1. 已创建

代币通过 `MemeFactory.createToken()` 部署。此时：

* 代币 ERC-20 合约已部署
* 80% 的供应量存入 Bonding Curve 池
* 代币立即可交易

```javascript theme={null}
const info = await factory.getTokenInfo(tokenAddress);
// info.fulfilled === false
// info.graduated === false
```

### 2. 交易中（Bonding Curve）

用户通过 `MemeFactory.buy()` 和 `MemeFactory.sell()` 进行交易。价格遵循恒定乘积曲线。

可以监控进度：

```javascript theme={null}
// 返回 0-10000（表示 0-100%）
const progress = await factory.getBondingCurveProgress(tokenAddress);
console.log(`已募集 ${Number(progress) / 100}%`);
```

### 3. 已填满（Fulfilled）

当 `kasReserves` 达到 `graduationThreshold` 时，代币变为 fulfilled 状态：

```javascript theme={null}
const info = await factory.getTokenInfo(tokenAddress);
// info.fulfilled === true
// info.graduated === false
```

<Warning>
  一旦 fulfilled，**Bonding Curve 上的买卖将被禁用**。代币正在等待流动性迁移。
</Warning>

### 4. 已上线（Graduated）

流动性迁移到 Krokoswap DEX。代币现在可以在公开市场交易。

```javascript theme={null}
const info = await factory.getTokenInfo(tokenAddress);
// info.fulfilled === true
// info.graduated === true
```

毕业后，**社区治理（CTO）** 变为可用——代币持有者可以选举 Council 并对提案投票。

## 检查代币状态

```javascript theme={null}
const info = await factory.getTokenInfo(tokenAddress);

if (info.graduated) {
  console.log("代币已毕业 - 在 DEX 上交易");
} else if (info.fulfilled) {
  console.log("代币已填满 - 等待 DEX 迁移");
} else {
  console.log("代币正在 Bonding Curve 上交易");
}
```

## 事件

监听 MemeFactory 发出的生命周期事件：

| 事件                                                     | 触发时机   |
| ------------------------------------------------------ | ------ |
| `Created(token, creator, tokenId, pool, name, symbol)` | 代币创建   |
| `Buy(token, buyer, kasAmount, tokenAmount, fee)`       | 有人买入代币 |
| `Sell(token, seller, tokenAmount, kasAmount, fee)`     | 有人卖出代币 |
