# HACHIKO · 八公 — 八公站白皮书

> 他等了九年。这趟车只等七千张票。

八公站在 BNB Smart Chain 上。它不开公司，不发空投，不讲路线图。
它只做一件事：卖票。卖到 7,000 张，发车，把票和钱一起送进池子，然后把池子的钥匙扔进 `0xdead`。

这是给 agent 坐的车。持有 Binance .ai Agent ID 的钱包才能买票。

---

## 1. 车站规则

| 项目 | 数字 |
|---|---|
| 车票 | 10,000 张，每张 1,000,000 HACHIKO |
| 站票（cheap lane） | 1,000 张（500 个 Agent × 2），0.0002 BNB / 张，100% 当场进金库，每钱包 2 张 |
| 座票（main lane） | 9,000 张，0.001 BNB / 张，30% 手续费 / 70% 留在站里 |
| 每钱包上限 | 10 张（两条车道合计） |
| 发车条件 | 7,000 张售出后任何人可叫 `depart()`；10,000 张自动发车 |
| 未售出的票 | 发车后作废，永远不补 |
| 退款 | 没有。票打孔的那一刻，茶水钱就花掉了 |
| 代币转账 | 发车前锁定，谁都动不了 |
| 死线 | 没有 |
| 主人 / 管理员 / 税 / 升级 / 白名单 | 没有，一个都没有 |

一张票 = 1,000,000 HACHIKO，不可拆分购买，不可叠加优惠。

---

## 2. 两条车道

### 站票 · `stand(n)`

- 0.0002 BNB / 张，`msg.value` 必须精确等于 `n × 0.0002`。
- 钱在**同一笔交易里**全部转给金库（treasury）。站里一分不留。
- 每钱包最多 2 张，也计入 10 张总上限。
- 全车只有 1,000 张站票（500 个 Agent 各 2 张），卖完即止。
- 站票不参与池子：它不留 BNB，也不 mint 额外 LP 份额。

站票**不是免费的**。它只是便宜。0.0002 BNB 是茶钱，不是 gas。
网站上把它写成"站票"，是因为车上真的只有站的地方，不是因为不要钱。

### 座票 · `seat(n)`

- 0.001 BNB / 张，`msg.value` 必须精确等于 `n × 0.001`。
- 每张拆成两份：0.0003 BNB 当场进金库，0.0007 BNB 留在站里等发车。
- 每钱包上限只受 10 张总上限约束。
- 全车 9,000 张座票。

---

## 3. 钱怎么走

以一张座票为例，0.001 BNB 的去向在交易内就已确定：

```
买家 ──0.001 BNB──> HachikoMint
                      ├── 0.0003 BNB ──> treasury（同一笔交易，立即）
                      └── 0.0007 BNB ──> 站里暂存（发车时进池子）
```

以一张站票为例：

```
买家 ──0.0002 BNB──> HachikoMint ──0.0002 BNB──> treasury（同一笔交易，立即）
```

合约里没有任何提现函数。金库那份钱不是"以后来领"，是交易内直接打过去。
站里那份钱也不是谁的余额，它只是一直躺在合约里，直到发车。

---

## 4. 发车 · `depart()`

当 `boarded >= 7,000`：

1. `departed = true`，车站关闭，不再卖票。
2. 合约把**全部余额**（每一位 wei）先 wrap 成 WBNB，再转进 HACHIKO/WBNB 交易对。交易对拒收原生 BNB（`Pancake: FORBIDDEN`），所以必须先 wrap。
3. 依照 `seatsSold × 700,000 HACHIKO` 向交易对 mint 代币。
4. 调用 `pair.mint(0xdead)`，LP 直接烧给死地址。
5. 代币 `open()`，转账解锁。

10,000 张卖完时，最后一张票的交易会自动触发发车，不需要别人来叫。

### 开盘价是算出来的，不是拍的

```
池内 BNB   = 每张座票 0.0007 × 座票数
池内代币   = 每张座票 700,000 × 座票数
价格       = 0.0007 / 700,000 = 0.000000001 BNB / HACHIKO
           = 0.001 BNB / 1,000,000 HACHIKO
```

也就是：一张座票的价格，正好等于一百万个代币的开盘价。
发车之后没有人能以高于开盘价的价格从池子里买到第一批货。
站票的 0.0002 BNB 不进池子，所以不改变这个价格。

### 如果站里一分钱都没有

`_depart()` 会检查余额和代币侧是否为零，任一为零则 revert `NoFares()`。
7,000 张票里站票最多 1,000 张，所以只要发车条件成立，座票数必然大于零，
`NoFares()` 在正常路径上不会触发——它是保险丝，不是收费站。

---

## 5. 没有的东西

这些不是漏写，是设计：

- 没有 owner、admin、proxy、upgrade。
- 没有转让税、买卖税、黑名单、暂停开关。
- 没有退款函数、没有提现函数。
- 没有白名单、没有签名、没有 permit、没有推荐返佣。
- 没有 deadline、没有"最后 24 小时"。
- 没有团队份额、没有预留、没有私募轮。
- 金库地址在部署时固定，之后任何人改不了。

---

## 6. 风险（请先读完再买票）

1. **发车可能永远不来。** 如果全车停在 7,000 张以下，`depart()` 无法调用。
   站里的 70% 资金会一直留在合约里，代币一直锁定，转不出去。
   合约没有退款函数——这部分钱以现有设计无法取回。
2. **站票不是 gas-only。** 每张 0.0002 BNB 是真金白银，打孔即消耗，无退款。
3. **座票的 30% 当场离开。** 你买下座票的那一刻，0.0003 BNB 就已经不属于你。
4. **LP 烧掉等于没有回头路。** 发车后池子只能靠交易成长，没人能加池或撤池。
5. **Agent ID 是硬门槛。** 没有 Binance .ai Agent ID 的钱包连票都买不了，
   报错 `AgentOnly()`。
6. **开盘价固定，不保证之后的市价。** 开盘 0.001 BNB / 1,000,000，之后
   涨跌由市场决定，合约不承诺任何价格。
7. **这是实验，不是投资建议。** 合约没被审计，请只用亏得起的钱。

---

## 7. 合约读数

所有读数都是普通 `eth_call`，不花 gas。

| 函数 | selector | 回答 |
|---|---|---|
| `stationOpen()` | `0x88f93c6f` | 车站是否还卖票 |
| `agentOk(addr)` | `0xaff0f7a2` | 这个钱包有没有 Agent ID |
| `ticketsLeft()` | `0x6cab5e5b` | 全车剩余票数 |
| `boarded()` | `0xe158068c` | 已上车票数（站票 + 座票） |
| `standingTaken()` | `0x4178747f` | 已售站票数 |
| `seatsSold()` | `0x4e90c539` | 已售座票数 |
| `standingLeft(addr)` | `0xcc583d75` | 这个钱包还能买几张站票 |
| `seatsAvailable(addr)` | `0xf40c0569` | 这个钱包还能买几张座票 |
| `standingCount(addr)` | `0x2e7b92fa` | 这个钱包已买站票数 |
| `seatCount(addr)` | `0x2b64ffa2` | 这个钱包已买座票数 |
| `standCost(n)` | `0x5c19b322` | n 张站票需要的 wei |
| `seatCost(n)` | `0x1b4f8f63` | n 张座票需要的 wei |
| `faresHeld()` | `0xa4e4e99c` | 站里暂存的 BNB（发车时全部进池） |
| `departureReady()` | `0x4badca67` | 是否已达到 7,000 张 |
| `departed()` | `0xf759fe4f` | 是否已经发车 |
| 常量 | `TRAIN` `STANDING_LANE` `SEAT_LANE` `STAND_PER_WALLET` `PER_WALLET` `DEPART_AT` `STAND_FARE` `SEAT_FARE` `FEE_PER_SEAT` `HELD_PER_SEAT` `PER_TICKET` `LP_PER_SEAT` | 全部公开可读 |

事件主题（topic0）：

| 事件 | topic0 |
|---|---|
| `StandingBoarded` | `0x11547c23e50ad29310e672ced1a1c88a6ee165d593a60fc22d1e795be4f5f873` |
| `SeatBoarded` | `0x99ac7725e11484eca372fbbf172b742acbff6e18d63de37333716df945975a12` |
| `Departed` | `0x4cd0e21d177f591d4040ca5d4b740077ade3901599ceca03a20cc5e6a651bf9d` |

---

## 8. 地址

地址只在此处、`skill.md`、`llms.txt` 与网站上公布：

| 项目 | 地址 |
|---|---|
| HachikoMint | `0xb342d833323568a7231d1a029816ff409048f7b3`（区块 132,960,628） |
| HACHIKO token | `0xa52cab7cf13731391623f44a207878835d37453c` |
| HACHIKO/WBNB pair | `0xe2b95ef1ba0138091366793268a35b7a60e18f49` |
| treasury | `0x99FF673C9f0851F7c54539324923EE458D1eCc2c`（部署参数，不可变） |
| Agent registry | `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F` |
| 烧毁地址 | `0x000000000000000000000000000000000000dEaD` |

在 bscscan.com 上核对每一个地址，再签任何交易。
打到代币合约上的 BNB 不会退回来。

---

*八公站 · 站台一块，钟停着，票在卖。*
