{
 "name": "Hackou Coin Pass",
 "symbol": "HCPASS",
 "description": "Hackou Coin Pass (HCPASS) is a collection of 2,222 on-chain NFTs on BNB Chain. A coin drawn on-chain, one for each pass. Wallets holding a BNB Chain Agent ID can mint 1 free; anyone can buy at a fixed 0.002 BNB. Every number below is fixed in the contract code.",
 "chain": {
  "name": "BNB Smart Chain",
  "chainId": 56
 },
 "contract": "0xA96f20BCeD857d3174Bb40e806b0151daeEaa62e",
 "standard": "ERC-721",
 "website": "https://hackou.com/coin-pass/",
 "files": {
  "llms": "llms.txt",
  "skill": "skill.md",
  "agent": "agent.json"
 },
 "verify": {
  "bscscan": "https://bscscan.com/address/0xA96f20BCeD857d3174Bb40e806b0151daeEaa62e#code",
  "sourcify": "https://repo.sourcify.dev/contracts/full_match/56/0xA96f20BCeD857d3174Bb40e806b0151daeEaa62e/"
 },
 "safety": {
  "owner": "0x0000000000000000000000000000000000000000",
  "admin_functions": false,
  "upgradeable": false,
  "approval_needed_to_mint": false,
  "payee": "0xF1a7772902b786ec93d8bf1fDF9925EB95B25c39",
  "funds": "Payments stay in the contract during the sale. After the sale ends (end time reached or sold out), anyone can call withdraw(), which sends them to the fixed PAYEE. withdraw() takes no parameters."
 },
 "sale": {
  "max_supply": 2222,
  "free_supply": 1111,
  "paid_supply": 1111,
  "price_wei": "2000000000000000",
  "price_bnb": "0.002",
  "free_per_wallet": 1,
  "free_rule": "a wallet holding an Agent ID (registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F, balanceOf(wallet) > 0) mints 1 free (FREE_PER_WALLET = 1), counted per wallet and, when handleOf(wallet) returns a non-empty handle, also per registry handle (if handleOf fails, the wallet count alone applies), while free NFTs remain",
  "paid_per_wallet": 10,
  "paid_open_from_start": true,
  "max_per_wallet": 11,
  "max_per_tx": 10,
  "sale_start_unix": "1794310281",
  "sale_end_unix": "1794569481",
  "sale_hours": 72
 },
 "mint": {
  "recommended": {
   "steps": [
    "quote(you, qty) -> (freeUnits, paidUnits, valueWei, ok, reason); stop if ok is false",
    "eth_call mint(qty) from you with value = valueWei",
    "send the same transaction"
   ],
   "function": "mint(uint256)",
   "selector": "0xa0712d68",
   "value": "quote(you, qty).valueWei"
  },
  "entries": [
   {
    "signature": "mint()",
    "selector": "0x1249c58b",
    "mode": "auto",
    "qty": 1
   },
   {
    "signature": "mint(uint256)",
    "selector": "0xa0712d68",
    "mode": "auto"
   },
   {
    "signature": "mint(address)",
    "selector": "0x6a627842",
    "mode": "auto",
    "qty": 1
   },
   {
    "signature": "mint(uint256,address)",
    "selector": "0x94bf804d",
    "mode": "auto"
   },
   {
    "signature": "mintPaid(uint256)",
    "selector": "0x26c7f77c",
    "mode": "paid"
   },
   {
    "signature": "publicMint()",
    "selector": "0x26092b83",
    "mode": "paid",
    "qty": 1
   },
   {
    "signature": "publicMint(uint256)",
    "selector": "0x2db11544",
    "mode": "paid"
   },
   {
    "signature": "freeMint()",
    "selector": "0x5b70ea9f",
    "mode": "free",
    "qty": 1
   },
   {
    "signature": "freeMint(uint256)",
    "selector": "0x7c928fe9",
    "mode": "free"
   },
   {
    "signature": "mintFree()",
    "selector": "0x8ab53447",
    "mode": "free",
    "qty": 1
   },
   {
    "signature": "claimFree()",
    "selector": "0xf366afc9",
    "mode": "free",
    "qty": 1
   },
   {
    "signature": "mintTo(address,uint256)",
    "selector": "0x449a52f8",
    "mode": "paid"
   }
  ],
  "modes": {
   "auto": "the caller's free allowance first, the rest at PRICE()",
   "paid": "every NFT at PRICE()",
   "free": "value must be 0; every NFT must be free or the call reverts"
  },
  "referrer": "mint(address referrer) and mint(qty, referrer): same as mint() / mint(qty); REFERRAL_BPS() is 0, so the referrer argument has no effect (Minted.referrer is 0x0) and claimReferral() has nothing to pay",
  "overpayment": "returned to the sender in the same transaction",
  "underpayment": "reverts with Underpaid(required, sent)"
 },
 "quote": {
  "functions": [
   "quote(address,uint256)",
   "quoteMint(address,uint256,uint8)",
   "costOf(address,uint256)",
   "costOfMint(address,uint256,uint8)",
   "canMintFor(address,uint256,uint8)"
  ],
  "returns": "(uint256 freeUnits, uint256 paidUnits, uint256 valueWei, bool ok, string reason)",
  "modes": {
   "0": "auto (mint)",
   "1": "paid (mintPaid, publicMint, mintTo with the recipient)",
   "2": "free (freeMint, mintFree, claimFree)"
  },
  "reasons": [
   "OK",
   "BAD_MODE",
   "BAD_QUANTITY",
   "TX_LIMIT",
   "SALE_NOT_STARTED",
   "SALE_ENDED",
   "FREE_CLOSED",
   "NO_AGENT_ID",
   "FREE_EXHAUSTED",
   "PAID_SUPPLY_EXHAUSTED",
   "WALLET_LIMIT",
   "SOLD_OUT"
  ]
 },
 "copy_prompt": "Mint Hackou Coin Pass on BNB Chain. Contract 0xA96f20BCeD857d3174Bb40e806b0151daeEaa62e (verify owner() is 0x0 and the source on BscScan). Call quote(myAddress, 1); if ok, simulate mint(1) with value = valueWei from my address, check that no approval changes, then send it. Wallets holding a BNB Chain Agent ID can mint 1 free. Paid: 0.002 BNB each, up to 10 per wallet (11 per wallet in total). remainingQuota(myAddress) shows how many I can still mint."
}
