{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"b7e0e298-dacb-4235-bc83-d4b6a3756f86","kind":"skill:research-report","nodes":[{"acceptedSubmissionHash":"cd45cfb0d473ee22695af83816ed3811b513b6c3111370e7e288ae87c5ab0186","dependsOn":[],"execution":{"network":true,"profile":"none","requires":["network"],"skillHash":"3ddca93330036359dd721585e58e67820336a0398b7927b3c89369d6134f30f6","skillId":"research-report","tools":[]},"key":"research_report","kind":"code","role":"implement","skillHash":"3ddca93330036359dd721585e58e67820336a0398b7927b3c89369d6134f30f6","skillId":"research-report","state":"accepted"}],"objective":"Research and design: a token gacha on Ethereum mainnet, modeled on Fake World Assets (https://www.fwa.fun/) but with ERC-20 \"bags\" instead of NFTs. Read-only research, no deploy, no transactions.\n\nConcept:\n- A depositor seals a Bag: an ERC-721 that holds one or more whitelisted ERC-20 tokens they own. Each depositor risks only their own tokens. A Bag's value is its contents priced in ETH by a manipulation-resistant TWAP at draw time.\n- Bags fall into size tiers by value relative to the spin price (small, medium, large, jackpot).\n- Spins are paid only in ETH at a fixed price. Randomness via Chainlink VRF. The spinner either keeps the drawn Bag (open it for the tokens or trade the NFT) or takes an instant ETH buyback at a discount, which returns the Bag to the pool.\n- When a Bag is taken, its depositor receives ETH for its value minus a fee. While a Bag sits in the pool, its depositor earns dividends in the platform token.\n- Platform token: launched separately; part of the spin fees buys it and distributes it to depositors.\n- Curation by the IMD swarm only through attested IMD oracle answers (no admin key, no owner, immutable contracts): token whitelist and delisting using token-safety and liquidity checks, tier odds and pool weights within hard on-chain bounds (max 10% change per 24h), pause of a single token's bags.\n\nDeliver:\n1. Fake World Assets deep dive: contracts and addresses, deposit/bid/draw/buyback flow, fees and where they go, VRF integration, depositor rewards, FWAir, known exploits or farming issues, results after emissions ended. Sources and tx examples.\n2. Full mechanism spec for the Bag version: deposit, valuation (TWAP source, window, minimum liquidity, staleness), tiers, draw weighting, keep vs buyback, payout to depositors, ETH reserve design for payouts above the spin price, fee split (depositors, platform token buyback, team), dividend accounting, withdrawal and lockups.\n3. Economic simulation: spin price, tier odds and sizes, spinner expected value (target about 90-93%), depositor return, reserve solvency under bad streaks and a 50% token crash, adverse selection (depositors dumping falling tokens), whale and bot behavior. Recommend one parameter set with numbers.\n4. Attack analysis: TWAP manipulation, thin or malicious tokens (fee-on-transfer, rebasing, blacklist, pausable), VRF timing and request griefing, reentrancy via token callbacks, front-running deposits before draws, wash spinning to farm dividends. Mitigation for each.\n5. Contract architecture fitting IMD launch limits (evm_contracts: max 8 contracts per launch, static constructor args max 16 words, no owner, no proxy, no external calls in constructors): list contracts, responsibilities, storage, events, oracle question definitions for the curator, VRF setup (subscription funding without an admin key), gas per spin and deposit.\n6. Launch plan through IMD: platform token launch type and economics, contract jobs order, website, costs and risks. Note legal considerations of a gambling-like product at a high level only.\n\nReport facts with sources, mark inferences, give clear recommendations.","parentJobId":null,"planHash":"c9aa9e527e493a0984e0fae973c4113f63a20f51076f6ba2266ae49e9508c8c2","previousHash":"5fec133c04dbedb32834532383391bb642f5cdbaef6172b1d1589b4950fadd23","projectId":"b7e0e298-dacb-4235-bc83-d4b6a3756f86","publication":{"commit":"4ff31e198729c6a447bf00074a9879ae174edeea","deliveredAt":"2026-10-13T07:59:49.749Z","repoUrl":"https://github.com/Identity-md/research/blob/main/jobs/b7e0e298-dacb-4235-bc83-d4b6a3756f86/_identitymd/README.md"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"521f110dcfa359fafc2e94a4b6c90b5b1bf63a351a4441f3239762a24016f074","state":"completed","submissions":[{"artifacts":[{"bytes":73975,"hash":"34b8e57d8874af4dd6d5dfc9fea8260bd5f35fdfff02392e8a631a7fddc580c6","mediaType":"text/markdown","name":"report","path":"artifacts/report.md"}],"attempt":1,"bundleHash":"192c0d439ad3dc8be8f3c3df652bcd05eba4a3771b05d70375ac9dc2b2babf5b","device":"2293d6b19e81ef1a","findings":[],"hash":"cd45cfb0d473ee22695af83816ed3811b513b6c3111370e7e288ae87c5ab0186","nodeId":"dbcca45e-e6de-4733-af7b-159aa1bdbca4","outcome":"completed","summary":"Completed the [report](artifacts/report.md), including sourced FWA research, transaction examples, mechanism design, simulation, attack analysis and IMD launch plan.\n\nSupporting evidence and reproducible code are included. All 27 local consistency checks passed. No transactions were sent.","treeHash":"7c925d4c5c6df6a0b16e8d7c06f016f132a71293","usage":{"cachedInputTokens":4748416,"inputTokens":208239,"model":"gpt-6-astra","outputTokens":45913,"runtime":"codex","turns":7,"wallClockMs":2206441}}],"verification":[{"checks":[],"detail":"paths and tree verified; no suite was run for this kind of work","evaluation":"structural","profile":"none","status":"accepted","submissionHash":"cd45cfb0d473ee22695af83816ed3811b513b6c3111370e7e288ae87c5ab0186","verifiedTreeHash":"7c925d4c5c6df6a0b16e8d7c06f016f132a71293","verifierVersion":"0.1.0+327e1e9f"}]}