{"workflow":null,"planning":null,"id":"17cab89e-bd76-4a9c-8661-e60b73815177","state":"completed","template":"shape:chain","objective":"AskOracle on Robinhood Chain (4663): anyone pays 0.5 IMD to ask the IdentityMD oracle a yes/no question in plain text, and the answer is readable from a getter. One contract, no token.\n\nUse the on-chain Intake: Intake 0x1397434cd35e8a9c8ac312a61d3a285eb31dea56, IMD 0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127, action bytes32(\"oracle.request@oracle-1\"), oracle signer 0x5598aa9146215bc13eb26f2c692ad1461fd32982. Follow the oracle-consumer reference exactly: its OracleAttestation struct, type string and domain (this contract is the verifying contract), copied, not retyped.\n\nask(string question) returns uint256 id:\n- question 1 to 500 bytes, no control characters; escape \" and \\ for JSON.\n- price = Intake.priceOf(action, IMD); pull exactly that from the caller (they approve this contract first), approve the Intake for it, call Intake.request with body {\"v\":1,\"question\":\"<question>\",\"chainId\":4663,\"window\":{\"hours\":1},\"answerType\":\"bool\",\"evidence\":\"panel\",\"panelSize\":50,\"quorum\":40,\"validForSeconds\":86400} and callback (this contract, onOracleResult).\n- record asker, question, intake request id, asked time, status Pending.\n\nonOracleResult: only from the Intake, only for a pending request; verify the attestation, require bool type and agreed >= quorum, consume its id, store the answer, agreed/quorum/panelSize and answered time, status Answered. Under 200k gas.\n\nA request with no answer after 24 hours can be marked Unanswered by anyone (the 0.5 IMD is spent; no refund).\n\nGetters: question(id) returning asker, question text, status, answer, agreed, quorum, panelSize, askedAt, answeredAt; count(); latestAnswered().\n\nOwner (constructor argument, written as $owner): may D, signer, panel size, quorum and validity. Nothingelse is privileged; the contract holds no funds betwe","blockedReason":null,"createdAt":"2026-10-08T02:14:17.697Z","updatedAt":"2026-10-08T02:41:59.581Z","paidBy":"0x047f606fd5b2baa5f5c6c4ab8958e45cb6b054b7","parentJobId":null,"project":{"id":"17cab89e-bd76-4a9c-8661-e60b73815177","head":"17cab89e-bd76-4a9c-8661-e60b73815177","running":null,"versions":[{"jobId":"17cab89e-bd76-4a9c-8661-e60b73815177","workflowId":null,"objective":"AskOracle on Robinhood Chain (4663): anyone pays 0.5 IMD to ask the IdentityMD oracle a yes/no question in plain text, and the answer is readable from a getter. One contract, no token.\n\nUse the on-chain Intake: Intake 0x1397434cd35e8a9c8ac312a61d3a285eb31dea56, IMD 0x5f7bb59365ce557c26dbcaa4ee9d39a4b95b7127, action bytes32(\"oracle.request@oracle-1\"), oracle signer 0x5598aa9146215bc13eb26f2c692ad1461fd32982. Follow the oracle-consumer reference exactly: its OracleAttestation struct, type string and domain (this contract is the verifying contract), copied, not retyped.\n\nask(string question) returns uint256 id:\n- question 1 to 500 bytes, no control characters; escape \" and \\ for JSON.\n- price = Intake.priceOf(action, IMD); pull exactly that from the caller (they approve this contract first), approve the Intake for it, call Intake.request with body {\"v\":1,\"question\":\"<question>\",\"chainId\":4663,\"window\":{\"hours\":1},\"answerType\":\"bool\",\"evidence\":\"panel\",\"panelSize\":50,\"quorum\":40,\"validForSeconds\":86400} and callback (this contract, onOracleResult).\n- record asker, question, intake request id, asked time, status Pending.\n\nonOracleResult: only from the Intake, only for a pending request; verify the attestation, require bool type and agreed >= quorum, consume its id, store the answer, agreed/quorum/panelSize and answered time, status Answered. Under 200k gas.\n\nA request with no answer after 24 hours can be marked Unanswered by anyone (the 0.5 IMD is spent; no refund).\n\nGetters: question(id) returning asker, question text, status, answer, agreed, quorum, panelSize, askedAt, answeredAt; count(); latestAnswered().\n\nOwner (constructor argument, written as $owner): may D, signer, panel size, quorum and validity. Nothingelse is privileged; the contract holds no funds betwe","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"completed","createdAt":"2026-10-08T02:14:17.697Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"evm_contracts","id":"658f7cfd-362d-4538-bf33-66b861fda7b0","status":"live","chainId":4663},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-976-askoracle-robinhood-chain-4663","pullRequestUrl":"https://github.com/identity-md-launches/launch-976-askoracle-robinhood-chain-4663/pull/1","commit":"d197b327e4667eab2925e467c632befb8bfde26e","deliveredAt":"2026-10-08T02:42:22.954Z","media":null},"media":null,"nodes":[{"key":"audit_economics","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:33:47.459Z","verdict":null,"seat":{"tokenId":"743","agentId":"52271"},"live":null},{"key":"audit_flow","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:34:26.165Z","verdict":null,"seat":{"tokenId":"1023","agentId":"52263"},"live":null},{"key":"audit_judge","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:41:59.581Z","verdict":null,"seat":{"tokenId":"415","agentId":"52270"},"live":null},{"key":"audit_math","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:33:30.828Z","verdict":null,"seat":{"tokenId":"715","agentId":"51169"},"live":null},{"key":"audit_permissions","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:36:21.299Z","verdict":null,"seat":{"tokenId":"1860","agentId":"50976"},"live":null},{"key":"build_contract_project","role":"implement","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:26:16.644Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"cf26855a31f7ae1b5015b3ce57548e94abaa6a59","at":"2026-10-08T02:26:16.926Z","failedChecks":[]},"seat":{"tokenId":"166","agentId":"51174"},"live":null},{"key":"manifest","role":"integrate","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:29:17.308Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"01c5344c71c268bdbe9860cd651eaaa5413a9c17","at":"2026-10-08T02:29:17.306Z","failedChecks":[]},"seat":{"tokenId":"1219","agentId":"50999"},"live":null},{"key":"write_foundry_tests","role":"tests","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["test","test/**"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T02:35:23.215Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"259759b1b56c928aaf0a7ce37910f1f49d7dd4d9","at":"2026-10-08T02:35:23.877Z","failedChecks":[]},"seat":{"tokenId":"439","agentId":"51456"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"audit_economics","agentId":"52271","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"52263","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"52270","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"51169","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"50976","value":1,"role":"review:submission"},{"nodeKey":"build_contract_project","agentId":"51174","value":1,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"50999","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"51456","value":1,"role":"verification:checks"}]}]}