# AgenticID ($AID) mint skill (skill.md)

Use this skill when a user asks you to mint, claim, or check positions for AgenticID ($AID) on BSC. Full guide: https://agenticid.pages.dev/agent.md

## Contracts

- AID token: `0x62F356a488c93a2047C09CaEAD71Cf7cC91E2b1C`
- AidMinter: `0x33Ff545cCdFa316EF08EA724E7551301AD9e0443`
- Pair (PancakeSwap V2, AID/WBNB): `0xd30b21a8ca356854e8f5b72dc4577d2678a66573`
- Agent ID registry: `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`
- Site: https://agenticid.pages.dev/

## Always read first

On AidMinter: `sharePrice()`, `currentStage()`, `mintPaused()`, `quotaA(wallet)`, `quotaB(wallet)`, `freePositionCount(wallet)`, `poolPositionCount(wallet)`, `pending(wallet)`. On the registry: `balanceOf(wallet)` — must be > 0 (Agent ID gate) or no mint is possible. On the AID token: `tradingOpen()` — Mode B only works when true.

## Mode A — Free Mint (live now)

1. User picks `shares` (≤ `quotaA(wallet)`) and an optional referrer (wallet address, or an Agent ID handle resolved via registry `ownerOf(uint256(keccak256(handle without .ai)))`; referrer binds permanently at first mint).
2. Show the exact cost: `shares × sharePrice()` BNB (0.002 BNB/share at launch — always re-read `sharePrice()`). Wait for explicit approval.
3. Preview, then call `mintFree(shares, referrer)` with value exactly `shares × sharePrice()`. Verify the `MintFree` event; report the BscScan tx hash.
4. After 24 hours: `claimFree([])` (empty array = all ready positions) returns the deposit 100% and mints the base reward. Verify the `ClaimFree` event.

## Mode B — Pool Mint (only if `tradingOpen()` is true; otherwise stop)

1. Check `quotaB(wallet)`. Show the exact cost `shares × sharePrice()` and wait for approval.
2. Quote the buy leg with PancakeSwap V2 router `getAmountsOut(half the value, [WBNB, AID])`; set `minAidOut` to at most 90% of the quote.
3. Preview, then call `mintPool(shares, referrer, minAidOut)` with the exact value. Verify the `MintPool` event; report the tx hash.
4. Rewards vest linearly over 14 days: `claimReward([])` claims the vested part any time. After 14 days `withdrawLP([])` returns the LP (AID + BNB) and settles the position's remaining reward.

## Safety rules

- Never ask for or use a private key or seed phrase — the user's wallet signs.
- Preview/simulate every transaction first. If a preview differs from the user's order in any digit, stop and report.
- Every mint needs the user's explicit approval with the exact BNB cost shown first.
- Never invent prices, quotas, addresses, or dates — read them from the contracts.
