{"rewardSnapshot":null,"merkleRoot":null,"claims":null,"id":"40d9a21c-58b4-47c8-9e1c-3c761c2df5d5","launchNumber":895,"kind":"evm_contracts","status":"live","chainId":4663,"sourceRepoUrl":"https://github.com/identity-md-launches/launch-895-swarmopoly-v2-onchain-monopoly-style","sourceCommit":"f6823f17c10356eba369977b89c00e56577e5308","parkedReason":null,"artifactCount":3,"manifestHash":"ebc6995f28b5d11e1580951bbebdc18f3403ea55f97c56ee34b3da05fdcb2f7f","attestationHash":"9faedec7444f471c9b47ece76e99b962845b6c23fa506e580b690aac4ab9e1e0","attestation":{"treeHash":"ae9a830ebce0f6918263a0698ddca260d2e02951","verifierVersion":"0.1.0+be003835","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":"DeedVault","path":"src/DeedVault.sol","abiHash":"6874e0e9f6b9684135984c7986e88b2935078971f0883c79c6b088d7518a6680","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"20c40196dd9e23b70c7e364bfd4a918e88765832eefb840450c8141cedebb89b","creationCodeHash":"1b402d9025d0b859e4e3e7702b6be430adb92eb2b054ae1df0b3de02fbf00eff","deployedCodeHash":"7cfa05f40768500253d19c1eddc4f55b930a76d9d92c8adbdeac96dffe02b4d7","creationCodeBytes":9997,"deployedCodeBytes":9661},{"name":"SeasonPot","path":"src/SeasonPot.sol","abiHash":"7af39e324d984ce950c934349cf3fd2bfb04d390a606c841f5536dd656bea927","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"464250f6e9ca60f7ea7ec37eda97d3f29362fc7a8bf3c6a3865d7570a343a561","creationCodeHash":"6a0852478ea112bb0bb67c47e090e90e8b388d07c33e85d3b39eabcf718d3371","deployedCodeHash":"a99800267a8768bd0fa18997a9bab74ddf16ffa6880cc2832f39a033f01e73f9","creationCodeBytes":2074,"deployedCodeBytes":1831},{"name":"SwarmopolyGame","path":"src/SwarmopolyGame.sol","abiHash":"19f7ca862ec6d3f9ee38dbd176dffbe4ab728a9f71a00dcea91723fc1b0eb9ff","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"58b74842b666d117a93a313dc4da3e06e25ddc6228879e4185e6ed1eaa6bd795","creationCodeHash":"d9a2875ed5eb0a806c5ab2b1a4ff002502bd876ef27be6070497c63c42ffa014","deployedCodeHash":"46a089ae8a1aeee945bfb79117278678c07eaf7291e3383873d38e3b1d7b9269","creationCodeBytes":15016,"deployedCodeBytes":13723}],"manifest":{"kind":"evm_contracts","notes":"Swarmopoly v2 for Robinhood Chain 4663, using existing IMD currency 0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127. PoolManager 0x8366a39CC670B4001A1121B8F6A443A643e40951 was read from poolManager() on hook 0x19bec7c2e1b2aadaf67b259744751a9960d66000 at block 82442795 (hash 0x14934b11b707f06a5b7122eb9dad542fd0c2c87038b8509f7f083a13504787d8) via https://rpc.mainnet.chain.robinhood.com; chain ID and code presence for the hook, manager and currency were verified. Deploy SeasonPot, DeedVault, then SwarmopolyGame with the listed constructor dependencies and $owner as each immutable privileged owner. Constructors are nonpayable. SeasonPot and DeedVault initially have no bound game; each requires its one-shot owner-only bindGame(game) before a season can start. Binding, tile listing and season setup are separate application operations, not initialization calls encoded or authorized by this manifest. No ETH funding, token creation or pool creation is included.","contracts":[{"contract":"SeasonPot","constructorArgs":["$owner","0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127"]},{"contract":"DeedVault","constructorArgs":["$owner","0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127","0x8366a39CC670B4001A1121B8F6A443A643e40951"]},{"contract":"SwarmopolyGame","constructorArgs":["$owner","0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127","$contract:DeedVault","$contract:SeasonPot"]}]},"manifestError":null},"attestationFailure":null,"deployFailure":null,"policyVersion":28,"economics":null,"poolFee":null,"requester":"0x5b95a971b4583a5f011e9da082acdd679b870d06","admissionChecks":[{"name":"provenance","detail":"8 node(s) accepted at f6823f17","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":"3 contract(s) clean and reproducible","status":"passed"},{"name":"manifest","detail":"3 application contracts; no protocol token or pool","status":"passed"},{"name":"protected_invariants","detail":"invariants-11aebc2aca1e: Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 11.94ms (11.11ms 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-07T11:56:28.432Z","updatedAt":"2026-10-07T11:57:18.985Z","jobs":[{"id":"ee10bd28-8e70-4175-89b2-445a5e137bb3","objective":"Swarmopoly v2: an onchain Monopoly-style daily game on Robinhood Chain (4663), plus a website. Currency: IMD 0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127.\\n\\nContracts, in deploy order:\\n1 SeasonPot($owner, currency): holds the pot; only the bound game moves it.\\n2 DeedVault($owner, currency, poolManager): per-tile token vaults and deeds. poolManager is the Uniswap v4 PoolManager on 4663: read poolManager() on hook 0x19bec7c2e1b2aadaf67b259744751a9960d66000. Never guess it.\\n3 SwarmopolyGame($owner, currency, $contract:DeedVault, $contract:SeasonPot).\\nPot and Vault each have a one-shot, owner-only bindGame(game).\\n\\nBoard: classic 40 squares, hardcoded; the 28 property slots start vacant. Owner listTile(slot, PoolKey, tier 1-8) fills a vacant slot; the pool must pair with the currency; a tile holding tokens can't change.\\nDice: commitRoll, then revealRoll in a later block; entropy = secret + blockhash after the commit; never prevrandao. A reveal missed past the window can be resolved by anyone as jail. Roll cooldown 20h.\\nPlayers: joinSeason pays the buy-in to the pot. Play balance in IMD, deposit/withdraw any time; rolling needs balance >= rollBond. Rent, tax and bail come from it; if rent can't be covered, pay all and be bankrupt until next season.\\nDeeds: after landing, buyDeed(tile, amountIn <= maxBuy, minOut) swaps exact input via PoolManager.unlock and mints pro-rata shares. Internal token accounting only, no balanceOf. Non-transferable. Optional lock: 30d = 1.5x weight, 90d = 2x. redeem after 24h and any lock.\\nRent: tierRent (defaults 1,2,3,5,8,12,20,30 IMD). 80% to holders by weight through an accumulator, 20% to the pot; holders claimRent.\\nSquares: GO salary = pot x 10 bps, once per roll. Tax to pot. Jail: skip a roll or pay bail. Free parking: 50 bps of pot, once a day. Chance from entropy: GO, jail, +5 bps of pot, tax, or nothing.\\nSponsors: sponsorTile(tile, amount, perLanding) in the tile's token, paid to landers; remainder withdrawable after the season.\\nSeasons: owner startSeason(buyIn, duration, rollBond, maxBuy). Score = salary + parking + chance + rent claimed; keep a top 10 on each update. After the end anyone finalizes: 60% of pot to the top 10 (25/18/13/10/8/7/6/5/4/4%), pull claims; 40% carries over.\\nOwner can only: bindGame, listTile, startSeason, set params within caps (salaryBps <= 50, tierRent <= 1000 IMD, cooldown 1-48h), pause rolls and buys. Never touches user funds; withdraw, redeem and claim work while paused.\\nSecurity: reentrancy guards, SafeERC20, no upgrades, no ETH. foundry.toml: bytecode_hash none, cbor_metadata false.\\nTests: mock v4 swap; invariants for vault accounting, rent paid >= rent credited, pot solvency, unrevealed rolls never better.\\nSite: Swarmopoly v1 look (IMD job 55ae5ec7). Wallet, add chain 4663, live board (tiles, vacant lots 'Launch Day soon', players), commit then auto-reveal roll with animation, buy with quote, my balance/deeds/rent, leaderboard, owner admin panel.\",\n    \"context\": \"Robinhood Chain 4663, evm_contracts only, no token. GitHub and IPFS approved, site label swarmopoly. Mainnet tiles, oracle pricing and monopoly bonuses are out of scope (season 2).\",\n    \"draft\": {\n      \"objective\": \"Build SeasonPot, DeedVault and SwarmopolyGame with tests and a review, deploy on Robinhood Chain, then build the Swarmopoly site against the deployment.\",\n      \"shape\": \"dag\",\n      \"onchain\": \"evm_contracts\",\n      \"chainId\": 4663,\n      \"github\": true,\n      \"ipfs\": \"swarmopoly\",\n      \"contracts\": [\n        \"SeasonPot\",\n        \"DeedVault\",\n        \"SwarmopolyGame\"\n      ],\n      \"references\": [\n        \"defi-native\",\n        \"solidity-security-review\",\n        \"uniswap-v4-security\"\n      ],\n      \"steps\": [\n        {\n          \"skill\": \"build-contract-project\",\n          \"key\": \"contracts\",\n          \"dependsOn\": []\n        },\n        {\n          \"skill\": \"write-foundry-tests\",\n          \"key\": \"tests\",\n          \"dependsOn\": [\n            \"contracts\"\n          ],\n          \"paths\": [\n            \"test\"\n          ]\n        },\n        {\n          \"skill\": \"adversarial-review\",\n          \"key\": \"review\",\n          \"dependsOn\": [\n            \"tests\"\n          ]\n        },\n        {\n          \"skill\": \"frontend-for-contract\",\n          \"key\": \"site\",\n          \"dependsOn\": [\n            \"review\"\n          ]\n        }\n      ]\n    },\n    \"permissions\": {\n      \"github\": true,\n      \"ipfs\": \"swarmopoly\",\n      \"onchain\": {\n        \"kind\": \"evm_contracts\",\n        \"chainId\": 4663","state":"completed","attachedAt":"2026-10-07T11:56:28.432Z"}],"artifacts":[{"role":"other","name":"DeedVault","address":"0x5a3dc16c23447f70c414145118ee2e9984260482","creationCodeHash":"1b402d9025d0b859e4e3e7702b6be430adb92eb2b054ae1df0b3de02fbf00eff","txHash":"0x5a419eb4f115d8d127699683b406e9110f74f2579a8ee87d41ee9d9b0f715aa9","blockNumber":82454371,"verifiedAt":null,"verifyFailure":null},{"role":"other","name":"SeasonPot","address":"0xd77f768d634328bdfa826051457c974f4028a6dc","creationCodeHash":"6a0852478ea112bb0bb67c47e090e90e8b388d07c33e85d3b39eabcf718d3371","txHash":"0x5a419eb4f115d8d127699683b406e9110f74f2579a8ee87d41ee9d9b0f715aa9","blockNumber":82454371,"verifiedAt":null,"verifyFailure":null},{"role":"other","name":"SwarmopolyGame","address":"0xa5ae5282aa914a4ce689f1609462e2a5eaa2490d","creationCodeHash":"d9a2875ed5eb0a806c5ab2b1a4ff002502bd876ef27be6070497c63c42ffa014","txHash":"0x5a419eb4f115d8d127699683b406e9110f74f2579a8ee87d41ee9d9b0f715aa9","blockNumber":82454371,"verifiedAt":null,"verifyFailure":null}],"allocations":[]}