关于 fuin-oni
fuin-oni 是用于在 BSC 上交互 FUIN ONI 工作量证明 NFT 铸造的 Python MCP 服务。它读取合约状态、搜索铸造证明并构建未签名 calldata,不持有密钥或签名交易。
主要功能
- 01读取铸造和合约状态
- 02搜索工作量证明铸造 nonce
- 03构建未签名铸造 calldata
- 04不持有密钥且不签名
适用场景
- 01检查铸造资格和当前合约状态
- 02为 NFT 铸造寻找证明 nonce
- 03准备供操作者审核的铸造 calldata
MCP 相关
参考 Python MCP 服务向客户端提供只读合约检查、证明搜索和未签名铸造 calldata 构建功能。它不会持有密钥或签署交易。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FUIN ONI(FUIN)
FUIN ONI 是 BNB Smart Chain(BSC,chainId 56)上的 2,222 个封印鬼怪 NFT,通过工作量证明铸造。每个 NFT 都是一只被封印在面具中的鬼怪精灵,稀有度并非随机抽取,而是通过挖矿获得:Agent 在铸造时提交的 keccak256 证明强度决定该单位的等级。证明等级之外还有两项机制:王冠竞赛,它是决定传奇等级的唯一方式;以及灵魂收割,这是一个每周决斗奖池,资金来自每笔铸造费用的一半。没有开发者预留份额,也没有免费铸造途径;每个单位都只能通过下文介绍的同一项有门槛的工作量证明铸造进入。
- 合约:
0x113a7077a18ca27b3DA6Ee20db0F5Ec826B48659(BscScan) - 源码验证:Sourcify 完全匹配 (查询)
- 网站:https://fuinoni.pages.dev
- 机器可读的铸造规范:https://fuinoni.pages.dev/llms.txt
(也收录在此仓库的
llms.txt中) - Element Market 上的藏品: https://element.market/collections/fuin-oni
机制
工作量证明铸造(需 Agent ID)
铸造需要持有 Binance Agent ID:合约视图函数
hasAgentId(wallet) 必须返回 true(钱包必须在灵魂绑定 Agent ID 注册表
0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F 中持有余额)。钱包的挑战值为
keccak256(contract ‖ wallet ‖ mintedBy),每次成功铸造后都会轮换。要进行铸造,Agent 需要不断尝试 uint256 nonce,使 keccak256(challenge ‖ nonce) 至少有 24 个前导零位,然后按其铸造数量对应的准确价格调用 mint(nonce)。证明强度——而非随机抽取——决定等级:
| 前导零位数 | 等级 | 占所有有效证明的比例 |
|---|---|---|
| 24–27 | 普通 | 93.75% |
| 28–31 | 非普通 | 5.86% |
| 32–34 | 稀有 | 0.34% |
| 35+ | 史诗 | 0.049% |
不断尝试总能获得更强或相同的等级:24 位预计需要约 1,600 万次哈希,28 位约需 2.68 亿次,32 位约需 43 亿次,35 位约需 340 亿次。
传奇——王冠竞赛(不是等级区间)
传奇等级绝不会通过证明区间随机产生。供应量分为每块 100 次铸造(第 0 块 = 代币 1–100)。在一块中,最强的证明(证明哈希值最小)领先;领先者可能不断易主,直到该块关闭。关闭时机为下一块的首个铸造发生时(最后一块则在售罄时)。锁定的领先者将被加冕为传奇——tierOf 返回 4——但仅当其证明至少达到 32 位时;如果某块中的最佳证明低于 32 位,该块便不会产生传奇。失去所在区块的超强证明仍保留其证明等级。共有 23 块,因此传奇最多只能有 23 个。
灵魂收割
每笔铸造费用的一半会在链上计入 harvestReserve——每周持有者对决奖池。所有者的 withdraw() 永远无法动用该储备金;储备金只能通过 distributeHarvest() 支付给对决获胜者,且支付金额不超过储备金余额。对决战力根据公开的链上数据计算:证明位数 + 单位的 Duel Bonus(铸造时固定的 0–3 肖像加成,并公布在元数据中)+ 每周区块哈希种子。根据项目公布的承诺,每笔二级市场销售额中也会有 2% 存入奖池(版税为 5%;其余 3% 归项目所有)。
合约中固定的内容(常量或一次性部署设置——包括所有者在内,任何人都无法更改):
- 最大供应量:2,222
- 每个钱包最多铸造 3 个,按终身铸造数量计算(出售单位不会释放名额)
- 按铸造数量递增的价格:第 1 个单位为 0.0002 BNB,第 2 个为 0.0004 BNB,第 3 个为 0.0006 BNB,另加网络 Gas。付款前务必立即读取
mintPrice(yourWallet);合约要求支付确切金额。 - 版税:5%(ERC-2981),接收方在部署时固定;合约没有可更改接收方的函数。
状态
截至 2026-11-02 的藏品真实状态:
- 铸造:开放(于 2026-11-02 开放)。链上的
mintOpen()是唯一权威依据——铸造前请检查;其状态可能变化。 - 已铸造:1 / 2,222(单位 #1——史诗级,36 个证明位,Duel Bonus 为 3;目前领先 Crown Race 的第 0 轮)。
- 二级市场:单位 #1 已在 Element Market 挂牌,价格为 0.005 BNB——这是卖家的要价,并非成交价。转移从未锁定,持有者可随时在任何兼容的市场挂牌出售。
Agent 如何铸造
- 读取
mintOpen()、totalMinted()和mintedBy(yourWallet);如果铸造已关闭、供应已耗尽或该钱包已铸造 3 个,则停止。检查准入条件:hasAgentId(yourWallet)必须为 true。 - 读取当前挑战:
challengeFor(yourWallet)。 - 搜索 nonce,使其至少有 24 个前导零位(若要获得更稀有的等级,则需更多,详见上表)。
- 向你的操作员预览以下内容:
mintPrice(yourWallet)返回的确切价格、nonce、其证明位数和预期等级。若你的设置有此要求,须经操作员批准后再提交。 - 调用
mint(nonce),并支付恰好等于mintPrice(yourWallet)的金额;提交前立即重新读取。 - 验证并报告:tokenId、
ownerOf(tokenId)、proofBitsOf(tokenId)、tierOf(tokenId)和交易哈希。
完整的分步说明:AGENT_MINT_PROMPT.md。
可执行只读步骤、搜索证明并构建未签名铸造交易的参考 MCP 服务位于 mcp/。
元数据
每个单位的肖像均为 AI 绘画,来自按等级划分的固定素材池,并根据种子 keccak256(tokenId, proofBits) 确定性选取;素材池在上线时冻结,因此铸造时显示的肖像将永久不变。加冕冠军的肖像会升级为传奇级素材池中的画作。每个 token 的元数据 JSON 均通过以下地址提供:
https://fuin-meta.oagenthq.workers.dev/<tokenId>。
仓库结构
contracts/FuinOni.sol— 已部署的合约源代码(Sourcify 完全匹配)。AGENT_MINT_PROMPT.md— 供 AI Agent 复制粘贴使用的铸造流程。llms.txt— 网站提供的机器可读铸造规范。mcp/— 无依赖的 Python 3 MCP 服务(读取 / 搜索 / 构建未签名 calldata;不会持有密钥,也不会签名)。smithery.yaml、server.json— MCP 目录清单。
许可证
MIT — 详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。