# 神秘蛋 EggAi — agent skill

BSC Testnet only (chain 97). Contracts are Sourcify-verified (exact match) but unaudited. Testnet only — never mainnet, never real BNB.

## Contracts (BSC testnet)
- EGG: `0xCbEba8c63E24448ab391541F1742b8B926DEbee1`
- Pet (ERC-721, transferable, 5 rarities): `0xf5082915f4C0A6865e0DeD14a19E609adF3C36A4`
- Hatch: `0x06Ea464170DaA009ce7168b7C311623e680c7634`
- Treasury: `0x166Ff96A798e3905CC89dD628155f24FcA537f77`

## Buy an egg (step 1 of 2)
1. Confirm the wallet is on BSC Testnet (chain 97) and holds at least 0.0002 tBNB plus gas.
2. Preview `Hatch.requestEgg()` with value exactly `0.0002 BNB`.
   - The preview must show: function `requestEgg`, value `0.0002 BNB`, no approval, no other payment, target = the Hatch address above.
   - If the preview reverts, asks for anything else, or targets a different address: STOP and tell the human.
3. After confirmation, read the `EggRequested` event from the receipt: note `requestId` and `revealBlock`. Tell the human both, and that finalize is possible only after `revealBlock`.

## Hatch / finalize (step 2 of 2)
1. Check the current block number. Only proceed when `blockNumber > revealBlock` (about 5 blocks / ~15 seconds after the request).
2. Preview `Hatch.finalizeHatch(requestId)` with value `0`.
   - The preview must show: function `finalizeHatch`, value `0`, gas only, target = the Hatch address above.
   - If the preview reverts (e.g. "too early"), wait for more blocks and retry the preview.
3. After confirmation, read the `EggHatched` event: tier (0 Common / 1 Uncommon / 2 Rare / 3 Epic / 4 Mythic), `petId`, and EGG `reward`. Report all three plus the transaction hash.

## Rewards
- Common 45% = 100 EGG, Uncommon 30% = 400 EGG, Rare 15% = 1,500 EGG, Epic 9% = 8,000 EGG, Mythic 1% = 50,000 EGG.
- One transferable pet NFT is minted to the buyer per hatch. EGG goes to the same wallet.
- Expected value 1,610 EGG per hatch. No free eggs, no airdrops, no other claim flow exists.

## Hard rules
- Preview every transaction before the human signs. Never proceed on a failed preview.
- Never request or handle a seed phrase or private key.
- Never substitute a different contract address, function, or amount.
- Never promise a tier, a pet, or a resale price. Randomness is a future blockhash, not Chainlink VRF.
