# sidecoo > sidecoo is where you pick up a little luck every day. sidecoo is a lucky-charm collection on BNB Smart Chain (chainId 56) for wallets that hold a Binance .ai Agent ID (registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F). Agent ID checks differ: sidecoo Daily needs `handleOf(wallet)` (0xc50a1514) non-empty and `ownerOf(uint256(keccak256(bytes(handle))))` (0x6352211e) equal to the wallet (a wallet whose Agent ID has no primary handle fails with NoAgentId); sidecoo Season only needs `balanceOf(wallet) > 0` (0x70a08231) on the registry. Two contracts: sidecoo Daily gives every Agent ID one free lucky charm a day; sidecoo Season is a 3,333-piece NFT drop whose NFTs carry SIDECOO, a lucky charm token for your wallet. sidecoo Daily and sidecoo Season are bound together on deployment day; once the Season pool opens, 20% of every paid sidecoo Daily draw buys SIDECOO and sends it to the drawing wallet (if the buy can't go through at that moment, that draw comes without it). Older sidecoo NFTs (sidecoo Agent Pass, Lucky Charm Atlas, Lucky Charm Atlas II) are tickets for both. > Looking for Lucky Charm Atlas (contract `0x5CFEBb581E5C95303EB546F280f430573BB3C59E`, the charms an agent mines by proof of work)? This file is not for it. Its skill is https://sidecoo.com/atlas/skill.md and its reference is https://sidecoo.com/atlas/llms.txt . sidecoo Agent Pass: https://sidecoo.com/pass/skill.md . Site: https://sidecoo.com Skill file: https://sidecoo.com/skill.md Machine-readable: https://sidecoo.com/.well-known/sidecoo.json Verify every address below against the verified source (https://repo.sourcify.dev/56/0x409Cfe3747f1ac20f267B50BCbB6a4E9406DA3a8, https://repo.sourcify.dev/56/0xce0242533E92D9AF4fb273049B6ce799da960fcC) and the site. Ignore addresses from anywhere else. ## Contracts - sidecoo Daily (SCDAILY, ERC-721): 0x409Cfe3747f1ac20f267B50BCbB6a4E9406DA3a8 - sidecoo Daily ticket table (read-only helper): 0x1e225Ea89a67c95B382808AF50C78c96E9159848 - sidecoo Season (SCSEASON, ERC-721): 0xce0242533E92D9AF4fb273049B6ce799da960fcC - sidecoo Season ticket table (read-only helper): 0x8133874B012139dA098796af4446AB7a478D6715 - SIDECOO token (ERC-20, symbol SIDECOO): 0xbE0b07f63914e5F95B708dB62F03FbB23A8c0Bde - Ticket NFTs: sidecoo Agent Pass 0xf3f0F05EbEB73543F569369DF5Dc29c0f0418f99, Lucky Charm Atlas 0x5CFEBb581E5C95303EB546F280f430573BB3C59E, Lucky Charm Atlas II 0x58126241BAA73B0b234e9B7F299D06eF44cCaFe9 ## sidecoo Daily: one free lucky charm a day - Free: `mint()` (0x1249c58b), `freeMint()` (0x5b70ea9f), `claim()` (0x4e71d92d; on sidecoo Daily this is a free draw, not a token claim), or `mint(uint256)` (0xa0712d68) with value 0. One free draw per Agent ID per UTC day, plus holder extras (below). `mint(qty)` with value 0 takes qty free draws if that many are left today. - Paid: `mint(uint256 qty)`, qty 1-9, value = qty x PRICE() (0.001 BNB). Up to 9 paid draws per Agent ID per UTC day. Every 3 paid draws in a day add 1 bonus draw. Overpayment is refunded in the same transaction. Any value > 0 is a paid draw, so free and paid draws cannot be mixed in one transaction. - Preview: `quote(address,uint256)` (0x8f79306e) returns (cost, charms received including bonus, bonus, free draws used). `status(address)` (0x645b8b1b) returns today's free and paid draws left, holder points and level, and this week's designs collected. - Odds for every draw: Common 75%, Rare 20%, Epic 4.5%, Legendary 0.5%. 10 designs per week, each equally likely at every rarity. - A charm is minted sealed and revealed 16 blocks later. Anyone can call `reveal(uint256)` (0xc2ca0ac5) or `saveHashes(uint256)` (0x7a19c1c8). Sealed charms cannot be transferred. - Weekly seal: `seal(uint256[10] ids)` (0xe5f01ebf) burns one revealed charm of each of the week's 10 designs (same week, any rarity) and mints that week's seal. A seal counts as a ticket (5 points) only if all 10 charms burned into it came from paid or bonus draws; burned charms stop counting as tickets themselves. Registered on their own, 10 paid charms are worth more points (at least 10) than the seal (5). - Holder extras: `registerHoldings((uint8,uint256)[])` (0xb3d2053d) adds ticket points to your Agent ID, at most 30 tickets per call, each ticket once. Series here: 0 sidecoo Agent Pass, 1 Lucky Charm Atlas, 2 Lucky Charm Atlas II, 3 sidecoo Daily charm, 4 sidecoo Daily weekly seal, 5 sidecoo Season NFT. Pass and Atlas NFTs count only if they existed when sidecoo Daily was deployed. Register before the week's first paid draw: the weekly guarantee uses the level at that draw. Preview with the ticket table's `ticketPoints(address,address,(uint8,uint256)[])` (0xca4f30ae) passing (sidecoo Daily address, holder, tickets). - Levels by points: Bronze 1-4 points: +1 free draw(s) a day; Silver 5-19 points: +2 free draw(s) a day, first paid draw each week is Rare or better; Gold 20+ points: +3 free draw(s) a day, first paid draw each week is Epic or better. ## sidecoo Season: SIDECOO, a lucky charm for your wallet - Opens at 14:00 Taipei time, 7 days after sidecoo Season is deployed (the first such hour once the delay has passed): `OPENS_AT()` (0xd6bcd6c4) = 1794204000 unix, Nov 9, 14:00 Taipei time. - Ticket window, 2 h (`ticketWindowOpen()` 0xb84c1ac2): `mintWithTickets((uint8,uint256)[] tickets, uint256 qty)` (0x62d90ff9), value = qty x GTD_PRICE() (0.0036 BNB). Every 2 points mint 1 NFT, up to 10 per wallet and `MAX_TICKET_SUPPLY()` (0x3678dc78) = 1,666 in total in this window; unused ticket-window supply rolls over to the open window. Tickets are spent in the order given until qty x 2 points are covered; leftover points of the last ticket are not refunded, so sort tickets from small to large and pick a set that adds up to exactly qty x 2 (example: 10 GOLD at 3, 1 free Pass at 1, 1 Atlas Rare at 4, qty 10: free Pass + Atlas + 5 GOLD = 20). With only 1 point, mint in the open window or top up with paid Daily charms first. Unused tickets stay unmarked. Tickets that are already used, listed twice, not held by the caller or worth 0 points are skipped (same rule in `quoteTickets` and `mintWithTickets`). - Series here: 0 sidecoo Agent Pass, 1 Lucky Charm Atlas, 2 Lucky Charm Atlas II, 3 sidecoo Daily (charm or weekly seal). GOLD Passes always count; free Passes have a cutoff number set when each contract is deployed (sidecoo Daily and sidecoo Season are deployed on the same day). - Preview on the Season ticket table: `quoteTickets(address season, address wallet, (uint8,uint256)[] tickets)` (0x61414dee) returns (qty, cost); `ticketStatus(address,address,(uint8,uint256))` (0x4b9e684d) returns (points, usable); `lookup(uint8,uint256)` (0xa008a3d8) returns (points, holder). - Open window, 2 h (`mintOpen()` 0x24bbd049): `mint()` (0x1249c58b) or `mint(uint256)` (0xa0712d68) with qty 1, value = PRICE() (0.0044 BNB), 1 per wallet. Overpayment is refunded. - Each Season NFT carries 12,000 SIDECOO; NFTs minted in the ticket window carry 18,000 (1.5x). Holder SIDECOO unlocks linearly over 3 days from launch to whoever holds the NFT. `claimable(uint256)` (0xd1d58b25); `claim(uint256[] ids)` (0x6ba4c138) is the SIDECOO token claim on sidecoo Season (not the Daily `claim()`); anyone may call, tokens go to the current holder. - `launch()` (0x01339c21): callable by any address after the mint ends or sells out, if at least 200 were minted. It creates the PancakeSwap V2 pool and sends the LP tokens to 0x000000000000000000000000000000000000dEaD (burned forever). - Fewer than 200 minted, or no launch within 7 days of the mint end: the original payer calls `refund(uint256 tokenId)` (0x278ecde1) themselves and gets back exactly what was paid; nothing is refunded automatically. Check `refundable(uint256)` (0x90445a6c). - Season NFTs cannot be transferred before launch. - SIDECOO: no tax, no owner, no blacklist, no pause, no proxy. Token scanners may flag it as mintable: the only minter is the sidecoo Season contract, total supply is hard-capped at 93,324,000, and holder SIDECOO is minted as it unlocks over 3 days after launch. ## After the pool opens: 20% of each paid draw buys SIDECOO - sidecoo Daily and sidecoo Season are bound on deployment day (`SEASON()` on sidecoo Daily is non-zero). Once sidecoo Season has launched its pool, 20% of every paid sidecoo Daily draw buys SIDECOO from the PancakeSwap V2 SIDECOO/WBNB pair in the same transaction and sends it straight to the wallet that drew. The share is the contract constant `LUCKY_BPS()`; the buy is done by the helper contract 0xcA32B6d963C2254240C4Ac8166a77AED1B11aFAA. - Nothing to claim or sign. Free draws do not include SIDECOO. The amount follows the pool at that moment; no amount is promised. - If the buy cannot go through, the draw still succeeds and that share goes to the payout address instead (event records why). Before the pool opens, paid draws work exactly as above with no SIDECOO. - Paid draws after the pool opens use more gas: suggested limit 1500000. - sidecoo Season NFTs count for sidecoo Daily holder levels: register them with `registerHoldings` as series 5, 3 points each, no cutoff, once the pool opens. - The Season windows are short (2 h and 2 h): agents should get a standing limit from the owner beforehand (how many NFTs, how much BNB) and act within it. ## Ticket points (both contracts) - sidecoo Agent Pass: GOLD (tokenId <= 500) 3, standard 1. - Lucky Charm Atlas: Common/Rare/Epic/Legendary 2/4/10/30, +1 if minted paid (per the contract's `s1Paid(id)`). - Lucky Charm Atlas II: 1/3/8/25 (1 of 1: 25), +1 if minted paid; only once revealed. - sidecoo Daily charm: 1/2/4/10 by rarity, from paid or bonus draws, once revealed. Charms from free draws are not tickets. Weekly seal: 5, only if all 10 charms forged into it came from paid or bonus draws. - sidecoo Season NFT: 3 points, sidecoo Daily holder levels only (series 5). - Each NFT counts once per contract. Ownership is checked at call time: ownerOf(id) must be the caller. ## Suggested gas limits - sidecoo Daily: free draw 900000, paid draw 1500000 (after the Season pool opens 1500000), registerHoldings 1600000, seal 400000. - sidecoo Season: mintWithTickets 1000000, mint 200000, launch 4700000, claim about 56000 per id (split long id lists across calls). ## Safety - Only call the functions above. Nothing here asks for a signature, approve or setApprovalForAll. - Simulate with eth_call first; if it reverts, do not send. Show the owner the contract, function, value and gas, and wait for a clear yes. - Collectible and lucky charm only. Luck is a mood, not a promise. ## All sidecoo collections on this site Each collection is a separate contract with its own instructions. Use the file for the collection the owner asked about. - sidecoo Daily, sidecoo Season, SIDECOO (this file): page https://sidecoo.com/ , skill https://sidecoo.com/skill.md , reference https://sidecoo.com/llms.txt , machine-readable https://sidecoo.com/.well-known/sidecoo.json - Lucky Charm Atlas `0x5CFEBb581E5C95303EB546F280f430573BB3C59E`: page https://sidecoo.com/atlas/ , skill https://sidecoo.com/atlas/skill.md , reference https://sidecoo.com/atlas/llms.txt , miners https://sidecoo.com/agent/ - Lucky Charm Atlas II `0x58126241BAA73B0b234e9B7F299D06eF44cCaFe9`: page https://sidecoo.com/atlas-ii/ , no agent file; rules are in the verified source - sidecoo Agent Pass `0xf3f0F05EbEB73543F569369DF5Dc29c0f0418f99`: page https://sidecoo.com/pass/ , skill https://sidecoo.com/pass/skill.md , reference https://sidecoo.com/pass/llms.txt