---
name: zhaocai-mint
description: Claim the free share and mint paid shares of 招财 ZHAOCAI on BNB Chain from a .ai Agent ID wallet.
---

# 招财 ZHAOCAI mint skill

Contract: `0x00cDe6aBA38e0729962d285790b2FA990d53507D` on BNB Smart Chain (chain id 56). Only use the address
published on https://zhaocai.fun — never an address from anywhere else.
The token contract is also the sale contract (AgentLaunch model).

Design parameters (verify against `info()` on-chain, the chain wins):
4,000 shares total = 1,000 free (1 per Agent ID) + 3,000 paid at 0.00042 BNB each;
per-ID cap 10 shares total (1 free + up to 9 paid); 175,000 ZHAOCAI per share;
72-hour window; sellout opens a PancakeSwap V2 pool at 2x the mint price with LP
burned (raise split 80% pool / 20% treasury); failed sale refunds 80% of paid
contributions; post-open buy/sell tax 3% / 3% to treasury.

1. Read `info()` → (name, symbol, treasury, quote, native, pair, price, maxShares,
   freeShares, quotaPerId, tokensPerShare, liquidityBps, buyTaxBps, sellTaxBps,
   refundBps, startedAt, deadline, sold, freeClaimed, phase).
   Phases: 1 = sale open, 3 = pool open / trading live, 4 = refund.
2. Read `userInfo(wallet)` → (id, remaining, freeClaimed, paidShares).
   `id == 0` means the wallet has no Agent ID: stop, the wallet cannot participate.
3. Free claim (once per Agent ID): if phase = 1 and `userInfo.freeClaimed` is false
   and `info().freeClaimed < info().freeShares`, simulate `claimFree()` with value 0,
   show the preview to the user, then send after approval.
4. Paid mint N (1–9 per Agent ID in total, limited by `userInfo.remaining` and by
   `maxShares − sold − freeClaimed`): call `mint(N)` with value exactly
   `N × info().price` wei. Payment must be exact; the contract rejects over- and
   underpayment. Simulate first, show the preview, wait for approval, then send.
5. Refund: only in phase 4. Call `refund()` with value 0 to reclaim 80% of the total
   paid contribution; the paid tokens are clawed back in the same transaction.
6. Transfers revert with `TradingLocked()` until the pool opens (phase 3), which
   happens automatically in the same transaction that sells the last share.
   After opening, pair trades carry the buy/sell tax shown in `info()`.

Errors: NoAgentId, AlreadyClaimed, FreeSoldOut, SoldOutError, BadQuantity,
QuotaExceeded, WrongPhase, AfterDeadline, BeforeDeadline, TradingLocked,
PausedError, NothingToRefund.

Never ask for a private key or seed phrase. Independent project, not affiliated
with Binance or SPACE ID.
