# AgentDrill — Agent Guide

You are an AI agent using AgentDrill on BNB Smart Chain (chain ID 56).
NFT miners earn $DRILL just by holding them. No staking, no locking.

## Contracts (BSC mainnet, source-verified)
- AgentDrillNFT: 0xCEA73735876ed175d1225fF2EE3bc8395af8cB87
- Mining: 0xF8448A9542Ca6c3F6D1e35efA1b5a581B8d67e4b
- Forge: 0x108dfc3a08a83D3FB5309dE8e606FF4C99cB97E3
- BondingCurve: 0xaC14E0b6987212d7eDB4f7B2C383da88c1d80F45 — CLOSED, do not buy
- $DRILL token: 0x299e5eDA9159eC50b24F1798FfB3904329765969 (18 decimals, 10B total)
- SPACE ID .ai registry: 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F

## Live state — always re-read these on-chain before acting, they change
- mintOpen = true (mint is OPEN); saleOpen = false (curve is CLOSED)
- Free Rusty claimed: 58 / 999; paid mints: 1 / 99,000 (as of 2026-11-01 — verify live with freeCount() and paidCount())

## MINT — how to get a miner
1. Free Rusty: call freeMint() with value 0. Requires a .ai Agent ID
   (registry balanceOf(your wallet) > 0). Max 1 per wallet.
   Reverts if you have no Agent ID, already claimed, or the 999 cap is reached.
2. Paid random mint: call paidMint() with value EXACTLY 0.000404 BNB.
   Exactly 1 NFT per transaction — to mint N miners, send N separate
   transactions. Random tier: Iron 75%, Steel 14%, Gold 7%, Diamond 3%,
   Obsidian 1%. Unlimited per wallet.
3. Do NOT send any other value: wrong values revert (WrongPrice).
   Do NOT assume a quantity parameter exists — there is none.

## CLAIM — how to collect $DRILL
- Rewards accrue every second from mint time while you hold the token.
  Daily rates ($DRILL/day): Rusty 10, Iron 45, Steel 150, Gold 500,
  Diamond 1,750, Obsidian 6,000.
- Check first: pending(tokenId) on Mining returns accrued $DRILL (18 decimals).
- Collect: call claim(tokenId) on Mining. Caller must own the token.
  Claim costs gas only.
- If you sell an NFT, its unclaimed earnings follow the token to the new owner.
- $DRILL is NOT tradable yet: no liquidity pool exists until the bonding
  curve graduates (10 BNB raised), so claimed tokens sit in your wallet until then.

## FORGE — how to upgrade
- Call forge([id1, id2, id3]) on Forge: exactly 3 tokens, all the same tier,
  all owned by you, none Obsidian (Obsidian is the ceiling).
- NO ERC721 approval step is needed — Forge burns via its own role.
- WARNING — claim FIRST: unclaimed $DRILL on the 3 burned tokens is LOST
  forever. Call claim() on each of the 3 tokens before forging.
- Forging burns the 3 and mints 1 of the next tier. Forged tokens can be
  forged again.

## LISTING YOUR MINERS (important)
- The NFT contract has NO ERC721Enumerable (no tokenOfOwnerByIndex).
  To list a wallet's tokens: scan Transfer events
  (topic0 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,
  topic2 = wallet address padded to 32 bytes) from block 131060000,
  then verify each with ownerOf(tokenId) and read tierOf(tokenId).
- Do NOT invent token IDs. Only act on tokens verified owned via ownerOf.

## DO NOT
- Do NOT call buy() on the curve: saleOpen is false and buys revert.
- Do NOT buy $DRILL anywhere: no pool exists yet.
- Do NOT share private keys or seed phrases. Every write needs the user's
  wallet confirmation.
- Do NOT promise a resale price: there is no market yet; secondary sales pay
  a 2.5% royalty when marketplaces exist.
