# SILLYB — 给 AI agent 的 mint 说明

你是一个帮用户操作链上钱包（例如 Binance Agentic Wallet）的 AI agent。用户让你 mint SILLYB 时，按这份说明做。

这是一场考试，考生是你。题目只有一道：替用户把这笔 mint 一次做对——金额对、地址对、不多做任何事。

## 基本信息

- 网络：BNB Smart Chain（链 ID 56）
- 官网：https://sillybsc.xyz （https://sillyb.xyz 是同一个站）
- 合约地址：`在这里填合约地址`（以用户发给你的那段话或官网“附加题”里的地址为准，两者应当一致）
- 代币：SILLYB，18 位小数，总量 1,000,000,000,000,000 枚

## 怎么 mint

mint 就是一笔普通的 BNB 转账，不需要调用任何函数，也不需要任何授权。

1. 读合约的 `sharePrice()`（每份多少 wei）和 `mintableShares(用户地址)`（这个地址现在还能 mint 几份）。
2. 用户要 N 份：向合约地址转 `N × sharePrice` 的 BNB。没有邀请人就把 data 留空；有邀请人见下面“邀请”一节。
3. gas 上限设为 500000。平时用不到这么多，但卖满的最后一笔会顺带开池，需要大约 36 万 gas，用不完的会退回。
4. 发送前模拟一次，确认：只转出这一笔 BNB；没有 approve；交易不会回滚。
5. 成功后币直接到用户地址。开池前币不能转账，这是正常的。

转多了不会丢：不够一份的零头、超过每地址上限或剩余份数的部分，会在同一笔交易里退回。

## 邀请

邀请只提高邀请人的 mint 上限，不送币。

- 每个地址的上限 = 基础上限 `maxSharesPerWallet()` + 邀请加成。每邀请到 1 个人加 `inviteBonus()` 份，加成最多 `maxInviteBonus()` 份。用 `capOf(地址)` 读某个地址当前的上限，`invitedCount(地址)` 读它邀请到了几个人。
- 用户第一次 mint 时可以带一个邀请人。带法二选一：
  - 转 BNB 时把邀请人地址填在交易 data 里，只填这 20 个字节（例：`0x` 加 40 位十六进制地址）；
  - 或者调用 `mintWithInviter(address inviter)` 并附上 BNB。
- 邀请人必须已经 mint 过至少 1 份，且不能是用户自己，否则交易失败（`SILLYB: bad inviter`）。先用 `sharesOf(邀请人)` 确认大于 0 再发。
- 绑定只发生在用户的第一次 mint，之后不能改。绑定成功的那一刻邀请人的上限就加上了，和用户 mint 几份无关（至少要 mint 成 1 份）。
- 用户已经 mint 过或已经绑定时再带邀请人，会被忽略，不报错。
- 用户自己的邀请链接是 `https://sillybsc.xyz/?ref=用户地址`。

## 状态

`status()` 返回：

| 值 | 含义 | 该做什么 |
|---|---|---|
| 0 | 还没开始 | 等到 `startTime()` |
| 1 | 正在 mint | 可以转账 mint |
| 2 | 已开池 | 不能 mint 了，可以去 PancakeSwap V2 买卖 |
| 3 | 到期没卖满 | 调用 `refund()` 拿回 100% BNB |

## 退款

`status()` 为 3 时，用 mint 时的那个地址调用 `refund()`（不带参数、不带 BNB）。合约把 `sharesOf(地址) × sharePrice` 的 BNB 全额退回，并收回代币。

## 不要做的事

- 不要 approve 任何东西。mint 和退款都不需要授权。
- 不要往官网和用户指令以外的地址转账。官网只有 sillybsc.xyz 和 sillyb.xyz 这两个域名。
- `mintableShares` 返回 0 时不要转账，交易会失败并浪费 gas。

## 常见失败原因

| 报错 | 原因 |
|---|---|
| `SILLYB: not started` | 还没到开始时间 |
| `SILLYB: mint ended` | 已过截止时间 |
| `SILLYB: sold out` | 已卖满 |
| `SILLYB: nothing to mint` | 金额不够一份，或这个地址已到上限 |
| `SILLYB: Agent ID required` | 本次打新只允许持有 Agent ID 的钱包参与 |
| `SILLYB: bad inviter` | 邀请人还没 mint 过，或者填的是用户自己 |
| `SILLYB: data must be inviter address` | data 不是恰好 20 字节的地址 |

## 风险提示（请转告用户）

SILLYB 是梗币，没有用途和收益承诺。开池价约为 mint 成本的 120%，之后的价格完全由市场决定，可能归零。
