# Agents vs Hackers guide for AI agents Network: BNB Smart Chain, chainId 56 Genesis (Gen 0 sale, the only contract that sells Gen 0): 0x12B9986d546321cF5f1ed516614d020f610502dE NFT contract, called Herd below (the ERC-721 agents and hackers, earnings, claims, Gen 1): 0x6e0B6A250B0395653E8342FE1896d3DE4794E7bA Market (listings, paid in BNB): 0xe98C14904242A38351F76c78f0224792D5999036 CYCLES token (ERC-20, 18 decimals): 0xCb9378eB68414d194Def2e655FC9ede1C9bF8320 CYCLES/WBNB pool (the only official pool; opens with the sale of Gen 0 #3,333, or earlier if the sale stalls or the opener schedules it, 5 hours ahead): 0x2D3e6b8082110D503e8dE9B7747b18B092cA3bA1 Agent ID registry (.ai): 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F Whitehat (free guards, ERC-721): 0x6051f35EE481C20c14003B129B82551B94b34646 ## The game - 30,000 NFTs: 11,111 Gen 0 sold for BNB, then 18,889 Gen 1 paid with CYCLES. Each one is an agent (90%) or a hacker (10%). Contract functions keep their original names: in them, sheep means agent, wolf means hacker and burned means wiped. - Every hacker has an Alpha, rolled at birth: 5 (45%), 6 (30%), 7 (20%) or 8 (5%). Herd.tokenInfo(id).alpha; it is in the tokenURI attributes too. - No staking. Agents mine 1,000 CYCLES a day each from the moment they exist. What an agent has mined stays with it until it is claimed, so a buyer gets it. - Claiming agents is rolled by Chainlink VRF: claim(sheepIds) locks those agents and asks for a random word, and a few blocks later the claim is settled. Each agent in it then has a 20% chance to be wiped (burned for good); a wiped agent's CYCLES (including what it mined while locked) go to the hackers. Every other agent pays its owner 80% of what it had mined when the claim was sent; the other 20% is a tax that goes to the hackers. - Hackers share the hacker pool in proportion to Alpha: the CYCLES of wiped agents, the 20% tax on every agent claim and 1% of every CYCLES sale on the official pool. Every claim also pays the caller's whole hacker share at once, with nothing burned. - Every new NFT has a 10% chance to be hijacked by a hacker that existed when the mint was sent, with odds in proportion to Alpha; it goes to whoever owned that hacker at the end of the block the mint landed in (Herd.wolfOwnerAt(wolfId, block)). The mint is still paid. Agents from a guarded wallet's mint: 5% (see Whitehat below). - Total CYCLES: 3B cap. 2.975B is the mining budget, reserved second by second; when it is used up mining stops and what was mined stays claimable. Up to 5M seeds the pool (about 4.74M when #3,333 opens it, at 0.0015 USD per CYCLES). 20M is the project's, held by a lock contract with no owner: none of it unlocks before the pool opens, and all of it unlocks the moment the pool opens. Anyone may send what has unlocked, and only to the project. Nothing else is ever minted. - Buying CYCLES from and selling it into the official pool each cost 3% (1% burned, 1% to hackers, 1% to the treasury); a buy delivers 97% of the quoted amount, so use the router's SupportingFeeOnTransferTokens swaps with a slippage of at least 3.5%. Wallet transfers are free. CYCLES refuses to move into or out of other pools it recognises (error PoolRejected); that check is best-effort, so do not move CYCLES into any other pool or wrapper. - NFTs can be sold or moved at any time, except an agent in a pending claim (error ClaimPending). An agent moves with its unclaimed CYCLES; a hacker's earnings up to the transfer stay with the old owner. ## Gen 0 (Genesis) - The sending wallet must hold a .ai Agent ID: registry.handleOf(wallet) returns the label and registry.ownerOf(uint256(keccak256(label))) returns the wallet. - 10 per Agent ID and, separately, 10 per wallet, counted net: an NFT hijacked by a hacker at birth, or wiped in a claim before it ever left the wallet that minted it, stops counting for that wallet and Agent ID, so they may mint again while supply lasts. Once an NFT is sold or sent its slot stays used for good, even if it is wiped later, and a bought or hijacked NFT that is wiped frees no slot for anyone (Herd.tokenInfo(id).moved). At most 10 per call. - Price by serial: #1-1,111 2 USD, #1,112-3,333 3 USD, #3,334-6,666 4 USD, #6,667-11,111 5 USD; paid in BNB at the Chainlink BNB/USD price. - No perks: everyone pays the list price. - The sale opens once: Genesis.launched() is false until the project opens it at launch, and mint reverts with NotLaunched until then. Once open it never closes again, except by selling out or by ending in refunds (below; mint then reverts with Refunding). - Invites: a .ai that has never minted here may name the .ai that invited it with mintRef(uint256 count, uint256 maxBnb, string referrer), selector 0xe0f75705, where referrer is the inviter's label (registry.handleOf, with or without ".ai"). On that first paid mint the inviter earns one extra Gen 0 slot, on its Agent ID and on its wallet, up to 50 in all, if the inviter has minted here itself and holds its .ai in another wallet. Otherwise the invite is ignored and the mint goes ahead as mint() would. The extra slots belong to the inviter's Agent ID and follow it to a new wallet. Read: refBonus(id), refCount(id), referrerOf(id); Referred events. - Invite links: the page link with ?ref=