# 牛来 — $NIU 领取技能（给 agent）

如何为铸造了牛来 NFT 的钱包领取 $NIU。领取前请读完整个文件。不要猜地址、
选择器或数量——一律从链上重新读取。

## 合约（BNB Smart Chain，chainId 56）

- NFT：0x9aF2025482d998cF5A1b4235fBDBE8711359f925（牛来 / NIULAI）
- 代币（领取就在这里——没有单独的领取合约）：
  0xAbC5F36D20f92B0e091E109593798135F4a8B654（$NIU，18 位小数）

状态：已上线。2026-11-02 部署并在链上验证（NFT 交易
0xe2ce5c5fc49ade3e9afaccffae513e1c0d14bdde050aee4cf8dc0dc57bda6c44，区块
131178103；代币交易
0x946c7c8a97d9d2c5ec853189e9947469d3725748a0c8b4b99caef15c64c2e346，区块
131178138）。铸造已开放。

注意：$NIU 是这个 NFT 收藏的领取代币，不是链上已有的 $NIULAI memecoin
（0xbeea1d618e533a387d941f58a7d4c9b7bd377777）。两者是不同的资产。

## 规则

- 每次付费铸造获得 120,000 $NIU。每个钱包的第一次铸造免费，不获得奖励。
- 奖励按钱包计算，而不是按牛计算：claimable（钱包）=
  （该钱包的付费铸造数）× 120,000 − 已领取数。
- 随时可以领取，没有截止日期。领取费用为零——发送价值 0（仅 gas）。
  附加任何价值的领取都会 revert。
- claim() 为自己的钱包领取。claimFor(address) 可以为任意钱包触发领取；
  代币会进入那个钱包，而不是调用者。
- 卖掉一头牛不会转移奖励。

## 选择器

- claim() 0x4e71d92d
- claimFor(address) 0xddeae033
- claimable(address) 0x402914f5
- paidMints(address) 0x38c9ebe6
- claimed(address) — 该钱包已领取的数量
- claimOpen() — 必须为 true
- totalClaims() / totalClaimed()

## 先读取（每次领取前都要做）

1. claimOpen() 为 true。
2. paidMints（钱包）——该钱包铸造了几头付费牛。
3. claimable（钱包）——现在正好可以领取多少。如果是 0，停下来：没有可领取的。
4. claimed（钱包）——该钱包已经领取了多少。
5. 代币合约里有足够的 $NIU（代币合约的 balanceOf ≥ claimable（钱包））。

## 领取流程（Binance Agentic Wallet，baw CLI）

1. Binance App 里 Developer Mode 必须开启（Agentic Wallet 管理页 → 设置 →
   Developer Mode）。
2. 先预览领取——没有预览绝不执行：`baw contract-call preview`，to = 代币
   合约，函数 claim()（或 claimFor（钱包）），价值 0。
3. 阅读预览：to、函数、价值（必须为 0）和风险详情。确认与本技能一致。
4. 用预览返回的 requestId 执行：`baw contract-call execute --requestId <requestId>`。
5. 之后验证：claimable（钱包）为 0（或减少了领取的数量），钱包的 $NIU
   余额正好增加了领取的数量。

## 可能出错的地方

- "Nothing to claim"：钱包没有付费铸造，或已经全部领取。检查 paidMints()
  和 claimed()。
- "Claim is free"：附加了价值。发送价值 0。
- "Claim closed"：claimOpen() 为 false。停下来并报告。
- 代币转账 revert 意味着池子空了。停下来并报告——不要重试。
