{"rewardSnapshot":null,"merkleRoot":null,"claims":null,"id":"ec1d4b0d-2dc4-4827-a626-e24add58df22","launchNumber":2278,"kind":"evm_contracts","status":"live","chainId":4663,"sourceRepoUrl":"https://github.com/identity-md-launches/launch-2278-launch-conditionals-contract-repository","sourceCommit":"f6d35513fe0076b05e62bb5de61fe6df01626d98","parkedReason":null,"artifactCount":1,"manifestHash":"1f068e8f89042d635a73383387a3113558d37c436ec3a0b45fd5fb3cf9777ba9","attestationHash":"777078057a51fd052c9666177df56af98cf055755be1f4545ae38acdc23354c7","attestation":{"treeHash":"371526b2fd599dcd0de44c6c27cd8874305a2942","verifierVersion":"0.1.0+6a374fcd","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":"Conditionals","path":"src/Conditionals.sol","abiHash":"69d3cc7a85c0fff380f177480cf5931df14f8f5821ed7adfbef2717dfcaebbfe","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"a9713ad5c2b519253129430d6252798867934f1839ed7988ae7edf11c1aacb42","creationCodeHash":"4eaf414bc084915b660026786b7ad468efa451ccaf85470fb2ecec4bb1f460d6","deployedCodeHash":"71074bfb359e2adfd452b498fcc4115723ea97535b8e0c10329cc624dd36343e","creationCodeBytes":21704,"deployedCodeBytes":19654}],"manifest":{"kind":"evm_contracts","notes":"Deploys src/Conditionals.sol:Conditionals on Robinhood Chain (4663), a conditional prediction market in IMD settled by the IdentityMD oracle. Constructor: owner = $owner, imd = 0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127 (IMD on Robinhood Chain), intake = 0xa43e6f75ee006411f79ac1c84120606c2330de82 (IdentityMD Intake version 2), oracleSigner = 0x5598aa9146215bc13eb26f2c692ad1461fd32982, feeRecipient = 0x63bcf2d1483c7628d7d53704ff9c8199dc28d907 (the brief's fee recipient). The constructor makes no external calls; it stores the addresses and activates the initial oracle configuration: action oracle.request@oracle-1, price 0.5 IMD, panel 5, quorum 4. A market asks 'if CONDITION, will OUTCOME?' with two worlds (condition happens / does not), each with a YES and a NO pool of IMD; the creator deposits two questions' worth of IMD (1 IMD at the 0.5 IMD price) as the market's resolution budget, returned less what was spent at settlement or void. From resolveTime anyone calls requestResolution: the contract pays the Intake with requestWithFailure for bool, panel-evidence questions over an absolute one-block Ethereum window at block.number - 10, charging the Intake's live priceOf when it is below the market's snapshot and the snapshot otherwise, and stores keccak256 of each canonical question document. The first ask of each question is paid from the budget; a retry (after a 1 day delay while an ask is live, or at once after an onFailure) is paid by the caller. onOracleResult (0x510379c7) accepts an answer only from the Intake for its own live ask with the stored questionHash, answerType bool, panelSize and quorum at least the market's, agreed >= quorum, not expired, issuedAt at most 5 minutes ahead of the chain clock, and an EIP-712 signature (domain IdentityMD Oracle, version 2, this contract) from the market's oracle signer. onFailure (0x5a0df71e) is unsigned and only clears the ask. Settlement: the world that did not happen is refunded in full; in the world that happened the winning side splits the pot minus a 3% fee (2% to the burn address 0x000000000000000000000000000000000000dEaD, because IMD refuses transfers to zero, 1% to feeRecipient), capped at what the losing side staked so a winner never nets less than they staked; a one-sided world is refunded with no fee. With no usable answer 30 days after resolveTime anyone can void the market (refused while an unanswered ask younger than 1 day is live) and every stake is refunded. Stakers claim their own payouts; a burn, fee or budget transfer IMD refuses is credited to owed and the recipient collects it with the permissionless withdrawOwed. The owner (Ownable2Step) can only propose an oracle configuration for future markets, activatable between 3 and 10 days after the proposal, and set the fee recipient; it cannot touch stakes, answers or open markets. No token, pool, proxy or pause.","contracts":[{"contract":"Conditionals","constructorArgs":["$owner","0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127","0xa43e6f75ee006411f79ac1c84120606c2330de82","0x5598aa9146215bc13eb26f2c692ad1461fd32982","0x63bcf2d1483c7628d7d53704ff9c8199dc28d907"]}]},"manifestError":null},"attestationFailure":null,"deployFailure":null,"policyVersion":28,"economics":null,"poolFee":null,"requester":"0x63bcf2d1483c7628d7d53704ff9c8199dc28d907","admissionChecks":[{"name":"provenance","detail":"9 node(s) accepted at f6d35513","status":"passed"},{"name":"findings","detail":"9 accepted submission(s), no unresolved blocking findings","status":"passed"},{"name":"independent_review","detail":"1 independent review(s)","status":"passed"},{"name":"bytecode","detail":"1 contract(s) clean and reproducible","status":"passed"},{"name":"manifest","detail":"1 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 676.40µs (518.32µs 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-20T05:51:19.761Z","updatedAt":"2026-10-20T05:52:18.989Z","jobs":[{"id":"e854ea48-ee65-40eb-b029-f441e6b3b1a2","objective":"Launch the Conditionals contract in this repository, src/Conditionals.sol:Conditionals, on Robinhood Chain without changing its logic. It is a conditional prediction market in IMD settled by the IdentityMD oracle. Constructor (address owner = $owner, IERC20 imd = 0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127, IIntake intake = 0xa43e6f75ee006411f79ac1c84120606c2330de82, address oracleSigner = 0x5598aa9146215bc13eb26f2c692ad1461fd32982, address feeRecipient = 0x63bcf2d1483c7628d7d53704ff9c8199dc28d907); it makes no external calls. A market asks 'if CONDITION, will OUTCOME?' and has two worlds (the condition happens / does not), each with a YES and a NO pool of IMD. The creator deposits 1 IMD (two 0.5 IMD oracle questions). After resolveTime anyone calls requestResolution: the contract pays the Intake with requestWithFailure for oracle.request@oracle-1 questions (panel 5, quorum 4, bool, panel evidence, window pinned to one Ethereum block, block.number - 10, since block.number on Robinhood Chain is the Ethereum block number) and stores keccak256 of each canonical question document. onOracleResult (selector 0x510379c7) accepts an answer only from the Intake for its own pending request, with the stored questionHash, answerType bool, panelSize and quorum at least the market's, agreed >= quorum, not expired, and an EIP-712 signature (domain IdentityMD Oracle, version 2) from the market's oracle signer. onFailure (0x5a0df71e) only clears the ask. Settlement: the world that did not happen is refunded; in the world that happened the winning side splits the pot minus 3% (2% burned to 0x000000000000000000000000000000000000dEaD because IMD reverts on transfers to zero, 1% to feeRecipient); a one-sided world is refunded with no fee; with no usable answer 30 days after resolveTime anyone can void and every stake is refunded. The owner can only propose an oracle configuration for future markets behind a 3 day delay and set the fee recipient; it cannot touch stakes, answers or open markets. No token, no pool, no proxy, no pause. The test suite (unit, fuzz, invariant, and a live-API question-hash vector) must keep passing.","state":"completed","attachedAt":"2026-10-20T05:51:19.761Z"}],"artifacts":[{"role":"other","name":"Conditionals","address":"0xc8cc656b71dd77ae1e29b0bc7890edd110e73255","creationCodeHash":"4eaf414bc084915b660026786b7ad468efa451ccaf85470fb2ecec4bb1f460d6","txHash":"0x7baf02fbc322ef9c583b8d50008b0a19fcc0e405ec200e484130a36cdf60da40","blockNumber":93222952,"verifiedAt":"2026-10-20T05:52:36.638Z","verifyFailure":null}],"allocations":[]}