{"rewardSnapshot":null,"merkleRoot":null,"claims":null,"id":"1fc22c34-dd98-4032-b7c2-7e6511ca388b","launchNumber":2033,"kind":"evm_contracts","status":"live","chainId":1,"sourceRepoUrl":"https://github.com/identity-md-launches/launch-2033-build-deploy-night-frogs","sourceCommit":"d92eccc0b98bd5a55f65b58ff279200ebf727737","parkedReason":null,"artifactCount":4,"manifestHash":"be918c137f62d4bad7bffe6352d9e7b635f0c7cae3cb5b7b3905112f8ff0aee4","attestationHash":"ea4bbf7676b8f77a107caa123dd33a9a76ec770aba028a9439af546a92d52dc0","attestation":{"treeHash":"68f717fed6b5ee29ba36d2b90a192c69c60e2531","verifierVersion":"0.1.0+d952fceb","verifierKey":"68249df1f422fa72f61ca7f0ddaf9b62043959c5c134498441d5e552a9921782","toolchain":{"solc":"0.8.26","forge":"forge Version: 1.8.3","viaIR":true,"optimizer":true,"evmVersion":"cancun","bytecodeHash":"none","optimizerRuns":200},"contracts":[{"name":"FrogData","path":"src/art/ArtStore.sol","abiHash":"e6a1a00cb4b3d7f9b0c9cbaea2ae482852e6678dc555dac72e3fd831f8b72773","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"6fd1760d8db242f12061daf5cff18b59f37018a7c1bc23e87445419282353762","creationCodeHash":"c4718582fe386930b4dda28105e7743f71e47c5f380102d7144d927d2c13d6a1","deployedCodeHash":"19735bdf4d52c6f889cfd85f70fad899c9f4372c41ff8aa853bf043831e21b36","creationCodeBytes":336,"deployedCodeBytes":16},{"name":"FrogArt1","path":"src/art/FrogArt1.sol","abiHash":"9b04c746fb93231d5b66723ea90ae5d223299dfa1bf6e7aac4a939e923c02043","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"293044993451803b390e27524a5f7106037a1a2d2c66347b21dcbb116951c8b2","creationCodeHash":"e9ee97344aa9170b23fc12ed65c2d3878abd633cf808b60f1c32be859169b503","deployedCodeHash":"2b26a91d5b9a732433b17552a70682275fe76fdf2b4cd511e13c52553d86e243","creationCodeBytes":29974,"deployedCodeBytes":563},{"name":"FrogArt2","path":"src/art/FrogArt2.sol","abiHash":"9b04c746fb93231d5b66723ea90ae5d223299dfa1bf6e7aac4a939e923c02043","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"8fe8cfe9d06d4d25fa45f435f3482791fd520f9a9da47b3f21dadd85df29fcf8","creationCodeHash":"7a559c2c38c9e1e1970dc853f581a1694dfc8990cc3fe341500b73cf0038ca23","deployedCodeHash":"2b26a91d5b9a732433b17552a70682275fe76fdf2b4cd511e13c52553d86e243","creationCodeBytes":21187,"deployedCodeBytes":563},{"name":"FrogRenderer","path":"src/FrogRenderer.sol","abiHash":"341f6f92a47d37b81f652335dd1cc1833c91a4e65f1ec896d07ba7faa3a8370a","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"17a4d1177bff99216e870692c264e63dedf8eed213daddade41bcbf0de45d71c","creationCodeHash":"87d1ed161031288d69cad6112216edf84ade7df55fe880cfe8ad52fb02365ad4","deployedCodeHash":"3539dd80e3c1fbda31b707901e7d47e32b6cb9e8bae993963fb775307af79877","creationCodeBytes":6710,"deployedCodeBytes":6459},{"name":"NightFrogs","path":"src/NightFrogs.sol","abiHash":"2516f3a967b496ed008ae6477789b99dd0403ed83ab5518098479f2c3b0dcd84","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"cf7cb168023f547e2b8e74318737d6383bbc33b3059aa6a3271cb17a46b27bab","creationCodeHash":"ed8fb99e4f6468764ebf56656ec4d1c48ed8374f198b1b64d609ac8ae3ba85df","deployedCodeHash":"b6cf4faae65337afda3a0e368cde73e3601524745362b7091a780755d4579fb0","creationCodeBytes":12215,"deployedCodeBytes":11015}],"manifest":{"kind":"evm_contracts","notes":"NIGHT FROGS (NFROG): a fully onchain generative ERC-721 of 500 frogs (ids 1-500, ids 1-77 Genesis) for NIGHTSHIFT, deployed as four application contracts in dependency order. FrogArt1 and FrogArt2 take no constructor arguments; each writes one immutable SSTORE2 data child (FrogData, an internal child, not a manifest entry) holding the packed SVG layers, shared definitions, moon placeholder, token #1 captain set and trait names (19 and 81 records). FrogRenderer takes the two art store addresses and computes traits and the base64 JSON tokenURI with the SVG image and every attribute onchain; it has no owner. NightFrogs takes the launch owner ($owner, also the initial treasury), the Chainlink VRF v2.5 Ethereum coordinator 0xD7f86b4b8Cae7D942340FF628F82735b7a20893a, and the renderer address. Constants: IMD payment token 0xD34a99Bc0f67aE1bbd63C660e6d0b0dd03E263B7, burn address 0x000000000000000000000000000000000000dEaD, max supply 500, max 10 mints per wallet, 5% ERC-2981 royalty to the owner. Price starts at 2 IMD (2e18). Every mint moves exactly 50% of the IMD to the burn address and 50% to the treasury in the same transaction, emits Burned, and totalBurned accumulates; the split is immutable. Nothing is pre-minted and the owner has no free mint. The owner can only change price and treasury, configure the VRF subscription id and key hash, hand over ownership (two-step), and call reveal once; one random word plus the token id selects traits, and tokenURI shows the moon placeholder before fulfillment. Not upgradeable, not pausable, no ETH, no fungible token, no pool. Constructors make no external calls: the IMD token and coordinator are checked on first use, not at deployment.","contracts":[{"contract":"FrogArt1","constructorArgs":[]},{"contract":"FrogArt2","constructorArgs":[]},{"contract":"FrogRenderer","constructorArgs":["$contract:FrogArt1","$contract:FrogArt2"]},{"contract":"NightFrogs","constructorArgs":["$owner","0xD7f86b4b8Cae7D942340FF628F82735b7a20893a","$contract:FrogRenderer"]}]},"manifestError":null},"attestationFailure":null,"deployFailure":null,"policyVersion":27,"economics":null,"poolFee":null,"requester":"0x6c4c78f2c3bdf4c4318fe305fb1c8bc1694d19b5","admissionChecks":[{"name":"provenance","detail":"8 node(s) accepted at d92eccc0","status":"passed"},{"name":"findings","detail":"8 accepted submission(s), no unresolved blocking findings","status":"passed"},{"name":"independent_review","detail":"1 independent review(s)","status":"passed"},{"name":"bytecode","detail":"5 contract(s) clean and reproducible","status":"passed"},{"name":"manifest","detail":"4 application contracts; no protocol token or pool","status":"passed"},{"name":"protected_invariants","detail":"invariants-9c691c05ee3c: Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.34ms (1.17ms CPU time)","status":"passed"},{"name":"economics","detail":"policy explicitly selects no on-chain contributor rewards","status":"passed"}],"assurances":[],"logo":null,"seeded":null,"createdAt":"2026-10-17T00:10:48.804Z","updatedAt":"2026-10-17T00:12:01.554Z","jobs":[{"id":"6f93b595-4b07-4715-83a5-2cf9b397005d","objective":"Build and deploy NIGHT FROGS (symbol NFROG), a fully onchain generative ERC-721 collection for NIGHTSHIFT, the autonomous AI company platform built on the IMD swarm. Total supply: 500 NFTs (token ids 1 to 500), never more. Ids 1 to 77 are Genesis frogs. This is not an ERC-20: no fungible token, no pool.\n\nSTORY: the Night Frogs are the crew that works the 3 AM shift on the NIGHTSHIFT ship while the founders sleep: tired, caffeinated, a bit dangerous, always shipping. Badass, funny, crypto-native, never cute or childish.\n\nCHARACTER: the classic internet meme frog look, drawn as our own original character (never traced or copied from existing art): front-facing bust, rounded head with two big bulging eye domes set close together, heavy half-closed eyelids with the pupils looking to the side (the signature smug, tired, knowing look), small nostrils, and wide thick lips in rust #B05A44 with a darker #6E2E22 shade and a soft highlight. Muted frog green #5F9E45 as the default skin. Meme energy: smug, deadpan, a little menacing.\n\nSTYLE: bold clean vector, thick black outlines (#08070D, 10 to 14 px at 1000x1000) with thinner inner lines, cel shading with 2 to 3 tones per color, a strong neon rim light on the left edge of the head and shoulders in the scene's accent color, soft shadow on the lower right, glossy eye highlights, subtle film grain (feTurbulence) and a dark vignette. Night palette: deep space #03020A, ultraviolet #7C5CFF, moon #C4B4FF, text white #F2EFFF, acid green #B8FF4A, amber #FFC46B, neon cyan #3FE6FF, magenta #FF4FD8. viewBox 0 0 1000 1000, every layer aligned to the same head and body anchor so any combination looks right.\n\nLAYERS (in draw order, each trait with a rarity weight):\n1 background (6): neon city skyline with lit windows and fog; ultraviolet storm; moonlit sky with a big crescent moon; deep starfield; server-room corridor with blinking lights; Genesis golden sunburst (ids 1 to 77 only, with a dotted aura ring and the word GENESIS).\n2 body (6): black hoodie, purple hoodie, hi-vis orange safety vest with reflective stripes, grey work jacket, NIGHTSHIFT crew jumpsuit with a crescent patch, gold tracksuit (rare).\n3 skin (8): classic green, dark green, acid neon, mint zombie (rare), ice blue, purple alien, gold (very rare), chrome (legendary).\n4 mouth (6): smirk with raised corner, flat with a toothpick, big grin with teeth, yawn, smug closed smile, gritted teeth.\n5 eyes (8): tired heavy lids with bags, laser eyes with glowing beams, black shades with neon reflections, cyan VR visor with scanlines, wired red-veined wide eyes, one eye closed wink, glowing acid eyes, monocle (rare).\n6 headwear (8): yellow hard hat with a glowing headlamp beam, knit beanie with a pompom, dispatcher headset with mic, gold crown with gems (rare), backwards cap, night-vision goggles on the forehead, halo of moonlight (legendary), none.\n7 accessory (6): gold chain with a $SHIFT pendant, NIGHT CREW id badge with the token number, steaming coffee mug, energy can, IMD swarm earpiece, none.\nAlso a 1-of-1 trait set for token #1. Traits must be readable at 200 px.\n\nONCHAIN: layers stored onchain (SSTORE2 data contracts); tokenURI returns base64 JSON with the SVG image and every trait as an attribute, computed onchain. The README shows rendered previews of at least 12 tokens.\n\nRANDOMNESS: Chainlink VRF v2.5; the coordinator 0xD7f86b4b8Cae7D942340FF628F82735b7a20893a is a constructor argument; the owner sets the subscription id and key hash after deployment and calls reveal once; one random word plus the token id picks each token's traits. Before reveal tokenURI shows a moon placeholder.\n\nMINT: paid only in IMD (ERC-20 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7), price 2 IMD per NFT, max 10 per wallet. On every mint exactly 50% of the IMD goes to the burn address 0x000000000000000000000000000000000000dEaD (IMD reverts on transfers to the zero address) and 50% to the owner's treasury, in the same transaction; a Burned event records each burn and a totalBurned view proves the total. The owner can change only the price and the treasury, never the 50/50 split. Minting: nothing is pre-minted and the owner cannot mint for free; anyone mints by paying until 500 exist. Transfers: standard ERC-721, no fee, no limit. ERC-2981 royalties 5% to the owner. Not upgradeable, not pausable.","state":"completed","attachedAt":"2026-10-17T00:10:48.804Z"}],"artifacts":[{"role":"other","name":"FrogArt1","address":"0x2a0140bc2b117ffee9b092af1a927b96328fb000","creationCodeHash":"e9ee97344aa9170b23fc12ed65c2d3878abd633cf808b60f1c32be859169b503","txHash":"0xb3f3dc9f990d15ec849bc51f4fccd3cde03a465d341c015bcc2558f8c70d2616","blockNumber":26208605,"verifiedAt":"2026-10-17T00:14:33.565Z","verifyFailure":null},{"role":"other","name":"FrogArt2","address":"0xf87acd914aa12b344a33ad4fc8966f85db3bfafd","creationCodeHash":"7a559c2c38c9e1e1970dc853f581a1694dfc8990cc3fe341500b73cf0038ca23","txHash":"0xb3f3dc9f990d15ec849bc51f4fccd3cde03a465d341c015bcc2558f8c70d2616","blockNumber":26208605,"verifiedAt":"2026-10-17T00:14:39.146Z","verifyFailure":null},{"role":"other","name":"FrogRenderer","address":"0x4d9bfbafe31ec18e9d3066f1475e24906d155d67","creationCodeHash":"87d1ed161031288d69cad6112216edf84ade7df55fe880cfe8ad52fb02365ad4","txHash":"0xb3f3dc9f990d15ec849bc51f4fccd3cde03a465d341c015bcc2558f8c70d2616","blockNumber":26208605,"verifiedAt":"2026-10-17T00:14:22.343Z","verifyFailure":null},{"role":"other","name":"NightFrogs","address":"0x55b8c762f1b86fe1d5406edaaae0f8ecf3688a0c","creationCodeHash":"ed8fb99e4f6468764ebf56656ec4d1c48ed8374f198b1b64d609ac8ae3ba85df","txHash":"0xb3f3dc9f990d15ec849bc51f4fccd3cde03a465d341c015bcc2558f8c70d2616","blockNumber":26208605,"verifiedAt":"2026-10-17T00:14:52.282Z","verifyFailure":null}],"allocations":[]}