{"workflow":null,"planning":null,"id":"46c695fa-7061-4e9f-a06a-659e1f72ee3b","state":"blocked","template":"shape:chain","objective":"pray: a token where selling is a prayer to the swarm. Buy freely; to sell cheaply you file a plea and a panel of IMD agents judges it through the IMD oracle. Approved sinners pay 1%, everyone else pays 50%, and the sinners' tax buys back and burns PRAY. Launch kind univ4_hook on Ethereum mainnet, paired with FWA (0xa0df17b5ac76ababa36e1450e2cbcd18a620c845): the launch's standard token and pool with our hook, plus our plea registry. Deploy in the launch, then host a site on the live addresses. No owner, admin, upgrade or pause in our contracts.\n\nToken name: pray. Symbol: PRAY.\n\nWhen the hook acts: on every swap in this pool. beforeSwap reads hookData and checks the blessing for sells; the fee is taken in the swap (buys and sells); filePlea is a separate call on our registry.\n\nFEES (hook, on top of the launch's pool fee; taken from the FWA side and kept in FWA, do not sell for ETH)\n- Buys: 1%. First 30 minutes after launch the buy fee decays linearly from 50% to 1%.\n- Sells with a valid blessing: 1%. Sells without one: 50%.\n- Every hook fee: 90% to the burn vault, 10% to 0xd01122bBfFd00fc96252c8b29867a5359a3bca13.\n- Burn vault: buyback() is callable by anyone, at most once per 60 s, up to 50,000 FWA per call; it swaps vault FWA for PRAY through the pool and burns it. Caller gets 0.5% of the FWA spent.\n\nPLEAS (the registry asks the IMD oracle on chain through the IMD Intake; no HTTP API is needed by the contracts)\n- IMD oracle on Ethereum: Intake 0x1397434cd35e8a9c8ac312a61d3a285eb31dea56, IMD 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, action id bytes32(\"oracle.request@oracle-1\"), price 0.5 IMD, attestation signer 0x5598aa9146215bc13eb26f2c692ad1461fd32982, EIP-712 domain {name \"IdentityMD Oracle\", version \"2\", chainId 1, verifyingContract = our registry}, OracleAttestation(bytes32 requestId,uint256 chainId,bytes32 questionHash,uint8 answerType,bytes answer,uint256 figure,uint64 fromBlock,uint64 toBlock,bytes32 blockHash,bytes32 panelJobId,uint16 panelSize,uint16 quorum,uint16 agreed,uint64 issuedAt,uint64 expiresAt). Docs: https://imd.fun/docs/ (\"Pay on chain\", \"Ask the oracle\").\n- filePlea(amount, text): the pleader approves 0.5 IMD to the registry first. The registry pulls 0.5 IMD, builds the oracle body on chain from a fixed template (v 1, chainId 1, window 1 hour, answerType bool, evidence panel, panelSize 7, quorum 5, validForSeconds 900, consumer = the registry; the question names the plea id, seller, PRAY amount and the plea text, JSON-escaped, text max 600 bytes; definitions pin the rubric: approve only if the plea is at least 20 words, specific and sincere, not abusive, not spam, not copied from an earlier plea), calls Intake.request with callback (registry, onOracleResult), and stores intake requestId -> plea. Max amount: 10% of the seller's PRAY balance. One open plea per wallet; one blessing per wallet per 24 h. Emits PleaFiled with the text.\n- onOracleResult(requestId, attestation, signature): only from the Intake, only for a pending plea; verify the EIP-712 signature against the signer above in the registry's domain, answerType bool, not expired; if the answer is true, the plea's seller is blessed for its amount for 15 minutes. Keep it under 200k gas (store, act later). A public submit() takes the same arguments for a missed callback, with the same checks.\n- Blessing: a sell through our pool names the seller in hookData via our router (else tx.origin); the hook asks the registry, and up to the blessed amount sells at 1% within the 15 minutes, then the blessing is spent.\n- The swarm sleeps: if no oracle answer reaches the registry for 24 h, every sell pays 1% until the next answer, so holders are never stuck if the oracle goes quiet.\n\nSITE\nBuy/sell PRAY vs FWA through our router; the plea form (approve 0.5 IMD, file the plea on chain, watch the panel vote live via https://api.imd.fun/oracle/requests, then sell with the blessing); a public feed of every plea with its text, verdict and the panel's votes; the sinners' tax collected and PRAY burned; swarm awake/asleep countdown; buyback button. Dark, candle-lit, minimal.\n\nTESTS\nFee per path (buy, blessed sell, unblessed sell, sleeping swarm) and the launch decay; 90/10 split exact; callbacks not from the Intake, unknown request ids, wrong signer or domain, expired, false answers, reused, wrong-seller or over-amount blessings all fail; plea text is escaped into valid JSON; one blessing per 24 h; sleep after 24 h without an oracle answer and wake on the next; buyback limits and burns; no function moves FWA or PRAY anywhere else. Mainnet fork: buy, blessed sell and unblessed sell through the real PoolManager with the hook, and verify a real attestation from the IMD oracle signer. Independent review.","blockedReason":"node manifest: needs_input: The required pool.initialPrice (decimal sqrtPriceX96) is not specified. deployment-parameters.json leaves it to launch policy, but no policy price is supplied. The hook accepts any valid initial price; the 1:1 price in tests is only a fixture. The manifest schema permits no price placeholder, and choosing a launch valuation would require guessing. — What decimal sqrtPriceX96 should pool.initialPrice use for the Ethereum PRAY/FWA launch?","createdAt":"2026-10-08T07:56:15.594Z","updatedAt":"2026-10-08T09:54:23.756Z","paidBy":"0xd01122bbffd00fc96252c8b29867a5359a3bca13","parentJobId":null,"project":{"id":"46c695fa-7061-4e9f-a06a-659e1f72ee3b","head":"46c695fa-7061-4e9f-a06a-659e1f72ee3b","running":null,"versions":[{"jobId":"46c695fa-7061-4e9f-a06a-659e1f72ee3b","workflowId":null,"objective":"pray: a token where selling is a prayer to the swarm. Buy freely; to sell cheaply you file a plea and a panel of IMD agents judges it through the IMD oracle. Approved sinners pay 1%, everyone else pays 50%, and the sinners' tax buys back and burns PRAY. Launch kind univ4_hook on Ethereum mainnet, paired with FWA (0xa0df17b5ac76ababa36e1450e2cbcd18a620c845): the launch's standard token and pool with our hook, plus our plea registry. Deploy in the launch, then host a site on the live addresses. No owner, admin, upgrade or pause in our contracts.\n\nToken name: pray. Symbol: PRAY.\n\nWhen the hook acts: on every swap in this pool. beforeSwap reads hookData and checks the blessing for sells; the fee is taken in the swap (buys and sells); filePlea is a separate call on our registry.\n\nFEES (hook, on top of the launch's pool fee; taken from the FWA side and kept in FWA, do not sell for ETH)\n- Buys: 1%. First 30 minutes after launch the buy fee decays linearly from 50% to 1%.\n- Sells with a valid blessing: 1%. Sells without one: 50%.\n- Every hook fee: 90% to the burn vault, 10% to 0xd01122bBfFd00fc96252c8b29867a5359a3bca13.\n- Burn vault: buyback() is callable by anyone, at most once per 60 s, up to 50,000 FWA per call; it swaps vault FWA for PRAY through the pool and burns it. Caller gets 0.5% of the FWA spent.\n\nPLEAS (the registry asks the IMD oracle on chain through the IMD Intake; no HTTP API is needed by the contracts)\n- IMD oracle on Ethereum: Intake 0x1397434cd35e8a9c8ac312a61d3a285eb31dea56, IMD 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, action id bytes32(\"oracle.request@oracle-1\"), price 0.5 IMD, attestation signer 0x5598aa9146215bc13eb26f2c692ad1461fd32982, EIP-712 domain {name \"IdentityMD Oracle\", version \"2\", chainId 1, verifyingContract = our registry}, OracleAttestation(bytes32 requestId,uint256 chainId,bytes32 questionHash,uint8 answerType,bytes answer,uint256 figure,uint64 fromBlock,uint64 toBlock,bytes32 blockHash,bytes32 panelJobId,uint16 panelSize,uint16 quorum,uint16 agreed,uint64 issuedAt,uint64 expiresAt). Docs: https://imd.fun/docs/ (\"Pay on chain\", \"Ask the oracle\").\n- filePlea(amount, text): the pleader approves 0.5 IMD to the registry first. The registry pulls 0.5 IMD, builds the oracle body on chain from a fixed template (v 1, chainId 1, window 1 hour, answerType bool, evidence panel, panelSize 7, quorum 5, validForSeconds 900, consumer = the registry; the question names the plea id, seller, PRAY amount and the plea text, JSON-escaped, text max 600 bytes; definitions pin the rubric: approve only if the plea is at least 20 words, specific and sincere, not abusive, not spam, not copied from an earlier plea), calls Intake.request with callback (registry, onOracleResult), and stores intake requestId -> plea. Max amount: 10% of the seller's PRAY balance. One open plea per wallet; one blessing per wallet per 24 h. Emits PleaFiled with the text.\n- onOracleResult(requestId, attestation, signature): only from the Intake, only for a pending plea; verify the EIP-712 signature against the signer above in the registry's domain, answerType bool, not expired; if the answer is true, the plea's seller is blessed for its amount for 15 minutes. Keep it under 200k gas (store, act later). A public submit() takes the same arguments for a missed callback, with the same checks.\n- Blessing: a sell through our pool names the seller in hookData via our router (else tx.origin); the hook asks the registry, and up to the blessed amount sells at 1% within the 15 minutes, then the blessing is spent.\n- The swarm sleeps: if no oracle answer reaches the registry for 24 h, every sell pays 1% until the next answer, so holders are never stuck if the oracle goes quiet.\n\nSITE\nBuy/sell PRAY vs FWA through our router; the plea form (approve 0.5 IMD, file the plea on chain, watch the panel vote live via https://api.imd.fun/oracle/requests, then sell with the blessing); a public feed of every plea with its text, verdict and the panel's votes; the sinners' tax collected and PRAY burned; swarm awake/asleep countdown; buyback button. Dark, candle-lit, minimal.\n\nTESTS\nFee per path (buy, blessed sell, unblessed sell, sleeping swarm) and the launch decay; 90/10 split exact; callbacks not from the Intake, unknown request ids, wrong signer or domain, expired, false answers, reused, wrong-seller or over-amount blessings all fail; plea text is escaped into valid JSON; one blessing per 24 h; sleep after 24 h without an oracle answer and wake on the next; buyback limits and burns; no function moves FWA or PRAY anywhere else. Mainnet fork: buy, blessed sell and unblessed sell through the real PoolManager with the hook, and verify a real attestation from the IMD oracle signer. Independent review.","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"blocked","createdAt":"2026-10-08T07:56:15.594Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"univ4_hook","id":null,"status":null,"chainId":1},"oracleRequestId":null,"delivery":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-08T10:11:47.996Z","verdict":null,"seat":{"tokenId":"1725","agentId":"51234"},"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-08T10:11:27.230Z","verdict":null,"seat":{"tokenId":"443","agentId":"50986"},"live":null},{"key":"audit_judge","role":"review","state":"waiting","attempt":0,"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-08T07:56:15.594Z","verdict":null,"seat":null,"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-08T10:09:51.120Z","verdict":null,"seat":{"tokenId":"1514","agentId":"51082"},"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-08T10:08:30.728Z","verdict":null,"seat":{"tokenId":"429","agentId":"51140"},"live":null},{"key":"build_contract_project","role":"implement","state":"accepted","attempt":2,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T09:52:24.811Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"3f6ffaa2026687e23bfd98a156f6ae13f603412d","at":"2026-10-08T09:52:24.811Z","failedChecks":[]},"seat":{"tokenId":"613","agentId":"51187"},"live":null},{"key":"manifest","role":"integrate","state":"failed","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["build_contract_project"],"allowedPaths":["launch.json"],"failureReason":"needs_input: The required pool.initialPrice (decimal sqrtPriceX96) is not specified. deployment-parameters.json leaves it to launch policy, but no policy price is supplied. The hook accepts any valid initial price; the 1:1 price in tests is only a fixture. The manifest schema permits no price placeholder, and choosing a launch valuation would require guessing. — What decimal sqrtPriceX96 should pool.initialPrice use for the Ethereum PRAY/FWA launch?","dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T09:54:23.756Z","verdict":null,"seat":null,"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-08T10:18:39.613Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"f5dd07788fec0bbf3899f341feb0cd3d6d12f053","at":"2026-10-08T10:18:39.613Z","failedChecks":[]},"seat":{"tokenId":"695","agentId":"51422"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"build_contract_project","agentId":"51187","value":1,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"51191","value":0,"role":"verification:checks"}]}]}