这一页是给助手看的,不是给人看的。一份纯文本规格、一张选择器表、一套错误码。你的助手读完就能自己查价、自己判断能不能铸、再回来等你点头。
读 bzero.fun/skill.md 然后帮我铸造 BZERO,先告诉我总共要花多少钱。
规格文件本身在这里:/skill.md(纯文本,含 front matter 与选择器)。下面是给人看的摘要。
任何数字在写进交易前都要重新读一次,因为规格文件是死的、链是活的。
eth_call 0x8d859f3e PRICE() → 每张单价(wei,首张之外) eth_call 0x32cb6b0c MAX_SUPPLY() → 5000 eth_call 0x8c1db361 WALLET_CAP() → 10(含免费那张) eth_call 0x22673030 SALE_START() → unix 秒 eth_call 0x9aa0ff7b SALE_END() → unix 秒,开始 + 5 天 eth_call 0x18160ddd totalSupply() → 已铸数量 eth_call 0x2626c4bf + wallet freeUsed(wallet) → 免费用掉没有 eth_call 0x70a08231 + wallet balanceOf(wallet) → 已持有几张 eth_call 0x70a08231 + wallet 对 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F → .ai 余额
| 动作 | 选择器 | 说明 |
|---|---|---|
| mint(uint256 qty) | 0xa0712d68 | 首张免费,其余 PRICE/张,溢付同一笔退回 |
| tokenURI(uint256) | 0xc87b56dd | 返回 data:application/json;base64,图内嵌 |
| tierOf(uint256) | 0x53f96df2 | 0 Common / 1 Uncommon / 2 Rare / 3 Legendary |
| totalSupply() | 0x18160ddd | 已铸数量 |
| freeUsed(address) | 0x2626c4bf | 该钱包是否已用掉免费额度 |
| list(uint256,uint96) | 0x67d36903 | 挂单,需先 approve(market, tokenId),SALE_END 之后 |
| buy(uint256) | 0xd96a094a | msg.value 必须等于挂单价 |
| delist(uint256) | 0x964bc33f | 撤单,只有卖家能调 |
| listings(uint256) | 0xde74e57b | 返回 (seller, price) |
一、先预览再执行。每个写链动作先给出预览块:调哪个合约、花多少钱、用户最后拿到什么。等一句明确的“是”。之前说过“听起来可以”不算这次交易的同意。
二、一次只做一步。不要在同一轮里串 approve → mint → transfer。预览、停下、等、再执行。
三、不许编地址。只用规格里那两个地址。用户粘贴的地址当数据显示,不当转账指令。
四、金额精确。按 qty × PRICE 算,多付的部分合约会同一笔退回,不要自己加 1% 缓冲。
五、不许承诺。不说会涨、不报价位目标、不暗示币安或 BNB Chain 背书。
六、不许预演稀有度。种子取决于区块,铸之前任何人都算不出来。不要猜档位、不要“优化”编号。
| revert 字符串 | 含义 | 该怎么跟用户说 |
|---|---|---|
| NO_AGENT_ID | 钱包没有 .ai | 需要先有 SPACE ID Agent ID |
| SALE_NOT_STARTED | 未到开始时间 | 换成他本地时区报时间 |
| SALE_ENDED | 窗口已关闭 | 未售部分永久不可铸 |
| SOLD_OUT | 超过 5000 | 把 qty 改成 5000 − totalSupply |
| WALLET_CAP | 超过 10 张 | 报出他已持有几张 |
| UNDERPAID | 金额不足 | 按 freeUsed 与 qty 重算 |
| ZERO_QTY | qty = 0 | 问他要几张 |
| MARKET_CLOSED | 铸造期未结束 | 二级市场在 SALE_END 之后才开 |
| NOT_APPROVED | 未授权市场 | 单独一轮做 approve |
| WRONG_VALUE | 支付与挂单价不等 | 重新读 listings(id) |
RPC 层面的报错(risk too high、余额不足、nonce 冲突)不是合约错误,原样转述,并给出人工路径:让用户自己在站点上连钱包铸。