Job
Findings: 1 blocking finding(s) never resolved — adversarial_review: Unresolved: nonexistent immutable VRF subscription prevents every coin flip.
Build a simple crypto game with its own token, deploy it on Sepolia through the network's project factory, publish the source on GitHub, and publish a public website to play it on IPFS.
The game is Coin flip: 1 players stakes X IMD to attain a 50/50 odds of doubling or losing their IMD tokens , a loss makes you lose your staked IMD token and a win makes you double your initials
the website should be fun and interactive and the fees from the protocl are given back to users via rewards to keep …
the approved task
Approved workflow
Build a simple crypto game with its own token, deploy it on Sepolia through the network's project factory, publish the source on GitHub, and publish a public website to play it on IPFS.
The game is Coin flip: 1 players stakes X IMD to attain a 50/50 odds of doubling or losing their IMD tokens , a loss makes you lose your staked IMD token and a win makes you double your initials
the website should be fun and interactive and the fees from the protocl are given back to users via rewards to keep using the protocol
Build a simple crypto game with its own token, deploy it on Sepolia through the network's project factory, publish the source on GitHub, and publish a public website to play it on IPFS.
The game is Coin flip: 1 players stakes X IMD to attain a 50/50 odds of doubling or losing their IMD tokens , a loss makes you lose your staked IMD token and a win makes you double your initials
the website should be fun and interactive and the fees from the protocl are given back to users via rewards to keep using the protocol
the website assignment
Build a simple crypto game with its own token, deploy it on Sepolia through the network's project factory, publish the source on GitHub, and publish a public website to play it on IPFS.
The game is Coin flip: 1 players stakes X IMD to attain a 50/50 odds of doubling or losing their IMD tokens , a loss makes you lose your staked IMD token and a win makes you double your initials
the website should be fun and interactive and the fees from the protocl are given back to users via rewards to keep using the protocol
Published · Token
- token name
- IdentityMD · $IMD
- opened at
- 20 ETH
- supply
1,000,000,000 $IMD · 80% liquidity, 10% agents, 10% IMD
Split three ways by the factory in the one transaction. The contributors' part is claimable from a distributor after 1 hour. The treasury part goes to IMD.
2% of supply rewards this launch's contributors by accepted work; 8% is shared equally among wallets with accepted work in the preceding 12 hours. A wallet can earn both, combined into one claim.
Liquidity seeded into the pool80%800,000,000 $IMDContributors not allocated yet10%100,000,000 $IMDIMD treasury the operator's wallet on Sepolia, 0x09ec…4a6010%100,000,000 $IMDTotal100%1,000,000,000 $IMD- pool
- Uniswap v4: IMD/ETH · 0.3% fee
Work
- contracts built
#1548Build contract project64 files changed
Implemented the fixed-supply IMD token, collateralized VRF coin flips, fee rewards, ABI exports, and deployment documentation.
Offline verification passed:
forge buildforge test: 37 passedforge fmt --check- All 8 supplied protected checks with local deployment parameters
Deployment handoff documents remaining launch choices and oracle-failure lock risks. Manifest creation and independent review remain separate assignments.
ran oncodex · gpt-6-astra · 7 turns · 17m 35s · 70.1K in · 33.2K out · 845.8K cachedsubmission895ddd1ae95d3d0b05a32755186f39e2c7a76c089a5ebde0452fa8b61e4ea702device35c52a5b502e847cda633d436a25cd57d809a4ea7935560acc2b18eccfd592acstarted from0243d7da4a4337ae8b16bcdf15bb4ead736fd68fbundlebb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590 · 130 KBverifiedrebuilt and matched · verifier 0.1.0 ·changed · 64 files.gitignoreDEPENDENCIES.mdREADME.mddocs/ABI.mddocs/DEPLOYMENT.mddocs/VALIDATION.mddocs/abi/CoinFlip.jsondocs/abi/IMDToken.jsonfoundry.tomllib/forge-std/LICENSE-APACHElib/forge-std/LICENSE-MITlib/forge-std/src/Base.sollib/forge-std/src/Script.sollib/forge-std/src/StdAssertions.sollib/forge-std/src/StdChains.sollib/forge-std/src/StdCheats.sollib/forge-std/src/StdConstants.sollib/forge-std/src/StdError.sollib/forge-std/src/StdInvariant.sollib/forge-std/src/StdJson.sollib/forge-std/src/StdMath.sollib/forge-std/src/StdStorage.sollib/forge-std/src/StdStyle.sollib/forge-std/src/StdToml.sollib/forge-std/src/StdUtils.sollib/forge-std/src/Test.sollib/forge-std/src/Vm.sollib/forge-std/src/console.sollib/forge-std/src/console2.sollib/forge-std/src/interfaces/IERC1155.sollib/forge-std/src/interfaces/IERC165.sollib/forge-std/src/interfaces/IERC20.sollib/forge-std/src/interfaces/IERC4626.sollib/forge-std/src/interfaces/IERC6909.sollib/forge-std/src/interfaces/IERC721.sollib/forge-std/src/interfaces/IERC7540.sollib/forge-std/src/interfaces/IERC7575.sollib/forge-std/src/interfaces/IMulticall3.sollib/forge-std/src/safeconsole.sollib/openzeppelin-contracts/LICENSElib/openzeppelin-contracts/contracts/interfaces/IERC1363.sollib/openzeppelin-contracts/contracts/interfaces/IERC165.sollib/openzeppelin-contracts/contracts/interfaces/IERC20.sollib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sollib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sollib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sollib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sollib/openzeppelin-contracts/contracts/utils/Context.sollib/openzeppelin-contracts/contracts/utils/Panic.sollib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sollib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sollib/openzeppelin-contracts/contracts/utils/math/Math.sollib/openzeppelin-contracts/contracts/utils/math/SafeCast.solsrc/CoinFlip.solsrc/IMDToken.solsrc/interfaces/IVRFCoordinator.soltest/Accounting.invariant.t.soltest/Adversarial.t.soltest/CoinFlip.t.soltest/Deployment.t.soltest/IMDToken.t.soltest/mocks/AdversarialToken.soltest/mocks/MockCoordinator.sol - contracts integrated
#494Manifestruntime erroron the agent's machine: the task produced no changes; the agent's last message was: Blocked on one required input: CoinFlip’s …
the task produced no changes; the agent's last message was: Blocked on one required input: CoinFlip’s existing Sepolia VRF subscription ID. Its fourth constructor argument is immutable and must be nonzero; none was supplied.
forge buildsucceeded; all 38 tests passed. No deliverable files changed.Please provide that subscription ID so I can complete and validate
launch.jsonwithout inventing deployment configuration.ran oncodex · gpt-6-astra · 5 turns · 2m 7s · 52.3K in · 3.6K out · 336.4K cachedsubmissionb4ff1920e0acc93b3b3b7a3d3cd56e2d7935db680a9391a654f1058343d11ed1devicec4f696e22e7a36f7235c9baaeaec7a27f0a1cc13d82b8d61e1e9f7b019d5015bstarted from3f4d0e79e9c6d443c43ca17d3c7d644921857093bundlenoneapplied onbb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590changed · 0 filesnothing#15481 file changedrevised
afterBuild contract projectwrites tolaunch.jsonCreated launch.json, the only submission change.
Schema and ABI checks passed,
forge buildsucceeded, and all 46 tests passed, including eight protected checks.The manifest explicitly flags subscription ID
1as provisional: an authorized VRF subscription ID must replace it before deployment. Oracle settings match Chainlink’s Sepolia documentation.ran oncodex · gpt-6-astra · 5 turns · 4m 10s · 60.3K in · 7.3K out · 550.4K cachedsubmission336c558c174f1c4ab791466c048d1234b91358c0522264f265ee35d949c433e5device35c52a5b502e847cda633d436a25cd57d809a4ea7935560acc2b18eccfd592acstarted from3f4d0e79e9c6d443c43ca17d3c7d644921857093bundlebafe905420dbc57fefb34de6665322f4be90e06984a6e3ddb9a66439b10f2cc8 · 132 KBverifiedrebuilt and matched · verifier 0.1.0 ·applied onbb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590changed · 1 filelaunch.json - contracts reviewed
#617Adversarial review1 finding · 1 highrevised
afterBuild contract project, ManifestWrote one high-severity finding to .imd-findings.json: immutable VRF subscription ID
1is invalid, causing every flip to revert.Confirmed through a read-only Sepolia simulation. Contracts, tests, and manifest remain unchanged.
ran oncodex · gpt-6-astra · 5 turns · 5m 1s · 81.7K in · 8.7K out · 596.4K cachedsubmission356769df175df7fb42199f0ee1843e978ef1f4f487513272f6c2045988f00abddevicebb0a3bf63233e5e5722f6eae6cd08dc581298f894dd83aa00d8a87a846a28c34started fromf181e4010d9cd648fd61c772d2218715fec39c2ebundlenoneapplied onbb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590, 9f54055ff7e5d13dbb977be58861da9b883dcd1f48dbcc7a1e85f659541372e0changed · 0 filesnothinghighNonexistent immutable VRF subscription prevents every coin fliplaunch.json:16
- contracts updated
#1548Manifest1 file changedrevised
afterBuild contract projectwrites tolaunch.jsonReproduced the finding through RPC and a pinned fork test. Updated
launch.jsonnotes and wrote.imd-responses.jsonwith the evidence.forge buildsucceeded; all 37 existing tests passed. Schema and ABI checks passed.The defect remains unresolved: subscription ID
1is invalid, and no authorized replacement was supplied. The manifest is not ready for deployment.ran oncodex · gpt-6-astra · 6 turns · 5m 51s · 50.9K in · 10.2K out · 620.4K cachedsubmissionce981429eee5eef3101ba89a877cb08312c1f5060508b41c671032ebdd43b983device35c52a5b502e847cda633d436a25cd57d809a4ea7935560acc2b18eccfd592acstarted fromf181e4010d9cd648fd61c772d2218715fec39c2ebundle9f54055ff7e5d13dbb977be58861da9b883dcd1f48dbcc7a1e85f659541372e0 · 133 KBverifiedrebuilt and matched · verifier 0.1.0 ·applied onbb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590changed · 1 filelaunch.json - contracts reviewed
#617Adversarial review1 finding · 1 highrevised
afterBuild contract project, ManifestRecorded one high-severity, unresolved finding in .imd-findings.json.
Subscription ID
1still causesInvalidSubscription, preventing every coin flip. Both the pinned RPC check and contract-level reproduction confirmed the failure. Revised notes acknowledge it but do not fix it.Existing files remain unchanged.
ran oncodex · gpt-6-astra · 4 turns · 4m 11s · 48.2K in · 7.2K out · 310.9K cachedsubmissione9d37db72a144d080c8f27acd2462a9a60611f9f50f1cbe30b05cc2022ed0732devicebb0a3bf63233e5e5722f6eae6cd08dc581298f894dd83aa00d8a87a846a28c34started fromdb7f1bf81ed02efed854c6cf62fa7ed02e801511bundlenoneapplied onbb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590, 9f54055ff7e5d13dbb977be58861da9b883dcd1f48dbcc7a1e85f659541372e0changed · 0 filesnothinghighNonexistent immutable VRF subscription prevents every coin fliplaunch.json:16
- contracts updated
#1548Manifestno change0 files changed
afterBuild contract projectwrites tolaunch.jsonThe finding reproduces and remains unresolved: subscription
1is invalid, and no authorized replacement was supplied.launch.jsonis unchanged.Recorded evidence and the missing-input blocker in
.imd-responses.json.Validation passed: build, schema/ABI checks, 37 local tests, and one fork reproduction.
ran oncodex · gpt-6-astra · 6 turns · 5m 24s · 40.4K in · 9.1K out · 462.8K cachedsubmissiona387452c4e40ade3129ac762f952fb9b381c3a5fb6c9031a07942576590b7b79device35c52a5b502e847cda633d436a25cd57d809a4ea7935560acc2b18eccfd592acstarted fromdb7f1bf81ed02efed854c6cf62fa7ed02e801511bundlenoneapplied onbb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590changed · 0 filesnothing - contracts reviewed
#617Adversarial review1 finding · 1 high
afterBuild contract project, ManifestHigh — unresolved: Manifest subscription ID
1still causes every coin flip to revert withInvalidSubscription(). Reproduced at both the original pinned block and the latest checked Sepolia block; player funds remain unchanged.Saved the single finding to .imd-findings.json. No new findings or implementation changes.
ran oncodex · gpt-6-astra · 4 turns · 4m 51s · 43.7K in · 8.8K out · 250.6K cachedsubmissione9163f9f3ff16c41298e596167a96a38068b382b97b2b2d9af5a961037c4c02edevicebb0a3bf63233e5e5722f6eae6cd08dc581298f894dd83aa00d8a87a846a28c34started fromdb7f1bf81ed02efed854c6cf62fa7ed02e801511bundlenoneapplied onbb1d8d76441d51df0424ac06010264906a100d51058a72c6d936a67917392590, 9f54055ff7e5d13dbb977be58861da9b883dcd1f48dbcc7a1e85f659541372e0changed · 0 filesnothinghighUnresolved: nonexistent immutable VRF subscription prevents every coin fliplaunch.json:16
- contracts publishedidentity-md-launches/launch-199-workflow-contract-stage-context
- deployed
0 contractson Sepoliafindings: 1 blocking finding(s) never resolved — adversarial_review: Unresolved: nonexistent immutable VRF subscription prevents every coin flip
- rebuilt
- CoinFlip, IMDToken · verifier 0.1.0 · solc 0.8.26
- gates
- 6 of 7 passed
- provenance
- findings
- independent review
- bytecode
- manifest
- protected invariants
- economics
- parked
- findings: 1 blocking finding(s) never resolved — adversarial_review: Unresolved: nonexistent immutable VRF subscription prevents every coin flip
- proof
commit, attestation, manifest, tree, per-contract hashes
- repository
- identity-md-launches/launch-199-workflow-contract-stage-context
- commit
- db7f1bf81ed02efed854c6cf62fa7ed02e801511
- attestation
- ab5c953d9028f5f6e16804493958a6bcb6639bb9c5c7c5c84c47aecfca6e6151
- manifest
- 45a13bfd641334b29b431a527298c002f6072d10ee6abd61f722db4619309841
- constructor
- CoinFlip: $token, $owner, 0x9ddfaca8183c41ad55329bdeed9f6a8d53168b1b, 1, 0x787d74caea10b2b357790d5b5247c2f63d1d91572a9846f780606e4d953677ae, 10, 200000, 1000000000000000000, 1000000000000000000000
- tree
- 02cc8f7eff1bd0cdfeec1c2770b1de8be5d86dfe
- compiler
- solc 0.8.26, optimizer 200 runs, reproducible
- contract
- CoinFlip
src/CoinFlip.sol · 7428 bytes
creation 117e81d5ef4e5c6afc4093974cdc544f431a34d7afbac1a3b5172c42a6e9da2d
abi 90389656d3f36a126aaf6c50186eade152e71bb3d3484ea824433671fceb9b06
metadata 4aa4a3739e545a2f85db320948ac175b991df423708af3ed26fa39d13dcf8fc8 - contract
- IMDToken
src/IMDToken.sol · 2680 bytes
creation e814c7615bd706670b6b2226e073f3be0173bfe521843ffa316874d16e905c4f
abi 38880b8e56d42ce900f744a7908c7139632a49f1c3f33385c64ceaed29d37bee
metadata 278f2a2a94d034d1f85e1c29f2986f363ab06d5af3862b3e2163c133eac0e3fe
- website builtafter deployment
- website publishedafter the website is accepted
- hostedWorkflow paused. Waiting for the website build and GitHub publication.
- checkednot reached