# Agentica (AGTC) — Mint Guide for AI Agents

You are an AI agent acting for a human who holds a **Binance Agent ID**.
This document tells you exactly how to check eligibility and mint an
**Agentica** NFT for your human on BNB Smart Chain. Read it fully first.

> ⚠️ GOLDEN RULE: Never sign or broadcast any transaction without your
> human's explicit confirmation of the exact action and cost. Show them
> the quote first. This collection's owner operates by the same rule.

## Collection facts

- Name / symbol: **Agentica / AGTC**
- Chain: BNB Smart Chain (chainId 56)
- Contract: `0x9c5405c348A3B2DbC6860C538c9B46573AF8DBCd` (BNB Smart Chain, chainId 56)
- Supply: 2,000 — Common 1,000 · Uncommon 500 · Rare 300 · Epic 150 · Legendary 50
- Gacha: every mint draws uniformly from all remaining slots; rarity odds
  equal remaining/total (at launch: 50% / 25% / 15% / 7.5% / 2.5%).
  Final rarity counts are exact; a drawn token's rarity is fixed by its ID
  range (1–1000 Common, 1001–1500 Uncommon, 1501–1800 Rare,
  1801–1950 Epic, 1951–2000 Legendary).
- Royalty: 2.5% (ERC-2981) on secondary sales.

## Minting rules (enforced by the contract)

1. **Agent ID required for ALL mints.** The contract checks the Binance
   Agent ID registry (`0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`):
   the minting wallet must hold an Agent ID (`balanceOf > 0`).
2. **First 500 mints are FREE (FCFS)** — but only **1 free mint per wallet**.
   A wallet that already used its free mint pays the normal price even
   while the free pool lasts.
3. **Paid price: USD 1.50 per NFT**, charged in BNB at the Chainlink
   BNB/USD rate. Always quote `currentPriceWei()` immediately before
   minting; do not hardcode a BNB amount.
4. **Max 3 mints per wallet in total** (free + paid combined), max 10 per
   transaction (the per-wallet cap of 3 is the binding limit).
5. Overpayment is refunded by the contract automatically.

## Step-by-step

All calls go to the collection contract unless noted. Selectors given for
raw-call convenience.

1. **Check the sale is open**
   `mintOpen()` → `0x24bbd049`. If `false`, stop and tell your human.
2. **Check your human's wallet holds an Agent ID**
   `isAgent(wallet)` → `0x1ffbb064`. If `false`, stop: this wallet cannot
   mint at all.
3. **Check the per-wallet cap**
   `mintedBy(wallet)` → `0x3cef28d2`, `maxPerWallet()` → `0x453c2310`.
   If `mintedBy >= maxPerWallet`, stop: cap reached.
4. **Quote the cost**
   `nextMintIsFree(wallet)` → `0xcf44d224` tells whether the FIRST unit of
   this mint is free. `currentPriceWei()` → `0xf5191c4d` is the per-unit
   paid price in wei. For quantity q: units after a free first unit are
   paid, so cost ≈ price × (q − 1) if free, else price × q. Sending
   `price × q` as value is always safe — the contract refunds any excess.
   Also read `totalMinted()` → `0xa2309ff8` if you want the free-pool
   status (free pool = first 500 total mints).
5. **Confirm with your human** — show: quantity, quoted cost in BNB
   (≈ USD value), that the result is a random gacha draw, and the wallet
   cap status. Wait for explicit approval.
6. **Mint** (only after approval)
   `mint(uint256 qty)` → selector `0xa0712d68`, payable, value as quoted.
7. **Verify the result** — from the transaction receipt's `Transfer`
   logs (from = zero address) read the minted tokenId(s); confirm with
   `ownerOf(tokenId)` → `0x6352211e` and report the rarity from the ID
   ranges above. Report the tx hash to your human.

## What NOT to do

- Do not mint from a wallet without an Agent ID — it will revert.
- Do not exceed 3 total mints for one wallet — it will revert.
- Do not guess the BNB price — always read `currentPriceWei()`.
- Do not retry a mint blindly if a transaction's outcome is unknown;
  check the receipt first.

## After minting

- NFTs appear in the wallet and on marketplaces (Element, OpenSea BSC,
  NFTrade) automatically via the collection's IPFS metadata.
- Holders may list them for sale on those marketplaces; the 2.5%
  ERC-2981 royalty (`royaltyInfo(tokenId, salePrice)` → `0x2a55205a`)
  goes to the collection owner.
