{"workflow":null,"planning":null,"id":"9165892b-200b-4e40-9ff0-e37f13112bda","state":"completed","template":"shape:chain","objective":"A custom token with a \"King of the Hill\" throne game: KING ($KING).\n\nPair: KING/ETH on the chain selected for this launch, using the DEX the launch factory uses (Uniswap v4 hook). Supply 1,000,000,000, 18 decimals, plain ERC-20. No owner powers after launch, no minting, no upgradeability.\n\nTrading fee (in the hook):\n- Every buy and sell pays a fee, always taken in ETH (from the ETH input on buys, from the ETH output on sells), computed on actual settled deltas for exact-input and exact-output swaps.\n- Anti-snipe at launch: the fee starts at 25% and decays linearly to the base fee of 2.5% over 30 minutes.\n- Fee split: 92% to the throne pool, 8% to the team wallet 0x39E3414e7a43DE41675e9bEC52F7C9F6ae489CB6 (pull-based). Nobody can withdraw from the throne pool except through the game rules.\n\nThe throne:\n- The game starts when the anti-snipe period ends. Until then the throne is empty and fees only fill the pool.\n- Taking the throne: a single buy whose ETH amount (fee included) is at least the current throne price makes the buyer the king immediately. Several small buys never add up.\n- Throne price: right after a takeover it is 1.2x the ETH the new king paid, then it decays exponentially (half-life 1 hour) toward a floor of 0.01 ETH. A king who sits long becomes cheap to dethrone. When the throne is empty the price is the floor.\n- The king's income: while someone holds the throne, the pool pays out continuously at 2% of the pool per hour, credited to the king every second. The king can claim it at any time, also after losing the throne.\n- Holding rule: the king must keep at least the KING tokens bought in the takeover. Any sell by the king through the pool dethrones him at once. Because the token is a plain ERC-20, also add a permissionless dethrone() that anyone can call when balanceOf(king) is below that amount (for example after a transfer to another wallet): it stops his income at that moment and empties the throne.\n- Sells by anyone else never affect the throne.\n- Identify the real buyer robustly: the hook sees the router, not the user. Choose a safe approach (hookData from the router, tx.origin, or another), document the trade-offs and test it. Support a \"must take the throne\" flag in hookData: if set and the buy is below the throne price at execution, the whole swap reverts so the buyer does not pay a fee for nothing.\n- If you see a way for bots to farm the throne (sandwiching the king, block stuffing, sequencer ordering on the selected chain), explain it and add a defence.\n\nWhen the hook acts: on every swap in the KING/ETH pool, to take the fee and run the throne game. It never acts on plain transfers or on liquidity changes.\n\nWho can call what: no owner. Anyone can buy, sell, take the throne, claim their own income, and call dethrone() when the king's balance is below the required amount. The team wallet only receives its 8% share by claiming it. Nobody can change any parameter.\n\nUpgrades and pausing: not upgradeable, not pausable.\n\nViews for a future website (no frontend in this job): current king, reign start, the king's accrued and per-hour income, current throne price and when it next halves, pool size, the required balance for the king, unclaimed income per wallet, past kings with reign time and earnings.\n\nRepository and manifest:\n- Contracts and tests only. Do not add any website or frontend files to this repository.\n- launch.json must follow the exact factory schema for univ4_hook launches: \"kind\": \"univ4_hook\"; \"hook\": { \"contract\": \"<hook contract name>\", \"constructorArgs\": [\"$poolManager\", \"$token\"], \"permissions\": [...] }; \"token\": { \"contract\": \"<token contract name>\", \"name\": \"KING\", \"symbol\": \"KING\", \"decimals\": 18 }; \"pool\": { \"pairedCurrency\": \"<native ETH as the factory expects it>\", \"fee\": 3000, \"tickSpacing\": 60, \"initialPrice\": \"<sqrtPriceX96 for a 10 ETH starting market cap, as a decimal string>\" }; \"notes\": \"<plain-text summary of the hook and game>\". Validate it against the schema before submitting.\n\nRequirements:\n- Foundry tests on a fork of the selected chain: anti-snipe decay, fee always in ETH on both sides and both exact modes, the 92/8 split, takeover at and below the price, the 1.2x jump and the 1-hour half-life decay to the floor, the per-second 2%/hour income, claims after dethroning, the holding rule on sells, dethrone() after a transfer and its refusal while the balance is sufficient, the must-take flag, reentrancy, and pool solvency.\n- An independent review of the economics and every contract.\n- Launch: all of the requester's share goes into liquidity (pool 90%, 0% to the requester), single-sided. Starting market cap 10 ETH.","blockedReason":null,"createdAt":"2026-10-06T15:03:41.940Z","updatedAt":"2026-10-06T18:07:16.705Z","paidBy":"0x39e3414e7a43de41675e9bec52f7c9f6ae489cb6","parentJobId":null,"project":{"id":"9165892b-200b-4e40-9ff0-e37f13112bda","head":"9165892b-200b-4e40-9ff0-e37f13112bda","running":null,"versions":[{"jobId":"9165892b-200b-4e40-9ff0-e37f13112bda","workflowId":null,"objective":"A custom token with a \"King of the Hill\" throne game: KING ($KING).\n\nPair: KING/ETH on the chain selected for this launch, using the DEX the launch factory uses (Uniswap v4 hook). Supply 1,000,000,000, 18 decimals, plain ERC-20. No owner powers after launch, no minting, no upgradeability.\n\nTrading fee (in the hook):\n- Every buy and sell pays a fee, always taken in ETH (from the ETH input on buys, from the ETH output on sells), computed on actual settled deltas for exact-input and exact-output swaps.\n- Anti-snipe at launch: the fee starts at 25% and decays linearly to the base fee of 2.5% over 30 minutes.\n- Fee split: 92% to the throne pool, 8% to the team wallet 0x39E3414e7a43DE41675e9bEC52F7C9F6ae489CB6 (pull-based). Nobody can withdraw from the throne pool except through the game rules.\n\nThe throne:\n- The game starts when the anti-snipe period ends. Until then the throne is empty and fees only fill the pool.\n- Taking the throne: a single buy whose ETH amount (fee included) is at least the current throne price makes the buyer the king immediately. Several small buys never add up.\n- Throne price: right after a takeover it is 1.2x the ETH the new king paid, then it decays exponentially (half-life 1 hour) toward a floor of 0.01 ETH. A king who sits long becomes cheap to dethrone. When the throne is empty the price is the floor.\n- The king's income: while someone holds the throne, the pool pays out continuously at 2% of the pool per hour, credited to the king every second. The king can claim it at any time, also after losing the throne.\n- Holding rule: the king must keep at least the KING tokens bought in the takeover. Any sell by the king through the pool dethrones him at once. Because the token is a plain ERC-20, also add a permissionless dethrone() that anyone can call when balanceOf(king) is below that amount (for example after a transfer to another wallet): it stops his income at that moment and empties the throne.\n- Sells by anyone else never affect the throne.\n- Identify the real buyer robustly: the hook sees the router, not the user. Choose a safe approach (hookData from the router, tx.origin, or another), document the trade-offs and test it. Support a \"must take the throne\" flag in hookData: if set and the buy is below the throne price at execution, the whole swap reverts so the buyer does not pay a fee for nothing.\n- If you see a way for bots to farm the throne (sandwiching the king, block stuffing, sequencer ordering on the selected chain), explain it and add a defence.\n\nWhen the hook acts: on every swap in the KING/ETH pool, to take the fee and run the throne game. It never acts on plain transfers or on liquidity changes.\n\nWho can call what: no owner. Anyone can buy, sell, take the throne, claim their own income, and call dethrone() when the king's balance is below the required amount. The team wallet only receives its 8% share by claiming it. Nobody can change any parameter.\n\nUpgrades and pausing: not upgradeable, not pausable.\n\nViews for a future website (no frontend in this job): current king, reign start, the king's accrued and per-hour income, current throne price and when it next halves, pool size, the required balance for the king, unclaimed income per wallet, past kings with reign time and earnings.\n\nRepository and manifest:\n- Contracts and tests only. Do not add any website or frontend files to this repository.\n- launch.json must follow the exact factory schema for univ4_hook launches: \"kind\": \"univ4_hook\"; \"hook\": { \"contract\": \"<hook contract name>\", \"constructorArgs\": [\"$poolManager\", \"$token\"], \"permissions\": [...] }; \"token\": { \"contract\": \"<token contract name>\", \"name\": \"KING\", \"symbol\": \"KING\", \"decimals\": 18 }; \"pool\": { \"pairedCurrency\": \"<native ETH as the factory expects it>\", \"fee\": 3000, \"tickSpacing\": 60, \"initialPrice\": \"<sqrtPriceX96 for a 10 ETH starting market cap, as a decimal string>\" }; \"notes\": \"<plain-text summary of the hook and game>\". Validate it against the schema before submitting.\n\nRequirements:\n- Foundry tests on a fork of the selected chain: anti-snipe decay, fee always in ETH on both sides and both exact modes, the 92/8 split, takeover at and below the price, the 1.2x jump and the 1-hour half-life decay to the floor, the per-second 2%/hour income, claims after dethroning, the holding rule on sells, dethrone() after a transfer and its refusal while the balance is sufficient, the must-take flag, reentrancy, and pool solvency.\n- An independent review of the economics and every contract.\n- Launch: all of the requester's share goes into liquidity (pool 90%, 0% to the requester), single-sided. Starting market cap 10 ETH.","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"completed","createdAt":"2026-10-06T15:03:41.940Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":true,"kind":"univ4_hook","id":"6cb380ee-cdff-4c30-820e-802522df242c","status":"parked","chainId":4663},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-814-custom-token-king-hill","pullRequestUrl":"https://github.com/identity-md-launches/launch-814-custom-token-king-hill/pull/1","commit":"4592f674017e22524803e7a9f93e41f81519d745","deliveredAt":"2026-10-06T18:07:46.282Z","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-06T16:31:22.840Z","verdict":null,"seat":{"tokenId":"61","agentId":"51021"},"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-06T16:30:51.752Z","verdict":null,"seat":{"tokenId":"1113","agentId":"51250"},"live":null},{"key":"audit_judge","role":"review","state":"accepted","attempt":2,"revisions":1,"judgeRevisions":1,"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-06T18:07:16.705Z","verdict":null,"seat":{"tokenId":"1505","agentId":"51375"},"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-06T16:30:15.707Z","verdict":null,"seat":{"tokenId":"735","agentId":"51203"},"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-06T16:29:44.389Z","verdict":null,"seat":{"tokenId":"1199","agentId":"51144"},"live":null},{"key":"build_contract_project","role":"implement","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-06T17:50:10.695Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+94826a22","verifiedTreeHash":"682e6a878e001e693414c31b61d1f226a312915a","at":"2026-10-06T17:50:11.281Z","failedChecks":[]},"seat":{"tokenId":"1110","agentId":"51009"},"live":null},{"key":"manifest","role":"integrate","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"dependsOn":["build_contract_project"],"allowedPaths":["launch.json"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-06T17:55:31.375Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+94826a22","verifiedTreeHash":"3e9c78e067f01a761ec5b3fac07de4bb00ed8901","at":"2026-10-06T17:55:31.396Z","failedChecks":[]},"seat":{"tokenId":"807","agentId":"51757"},"live":null},{"key":"write_foundry_tests","role":"tests","state":"accepted","attempt":1,"revisions":1,"judgeRevisions":1,"dependsOn":["build_contract_project"],"allowedPaths":["test","test/**"],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-06T17:55:43.957Z","verdict":{"status":"accepted","profile":"foundry","evaluation":"checks","rejectionCode":null,"detail":"all checks passed","verifierVersion":"0.1.0+94826a22","verifiedTreeHash":"d24a7c5e8c49f3d04be774765ce468c45512cb9b","at":"2026-10-06T17:55:43.961Z","failedChecks":[]},"seat":{"tokenId":"1507","agentId":"51533"},"live":null}],"reviews":[{"status":"sent","chainId":1,"txHash":"0xe3d1fd340923f57aa8a4a68fd95e110c27f2a34c3ded715c6b38da25afeac507","blockNumber":26135413,"sentAt":"2026-10-06T19:26:04.917Z","entries":[{"nodeKey":"audit_economics","agentId":"51021","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"51250","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"51375","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"51450","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"51203","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"51144","value":1,"role":"review:submission"},{"nodeKey":"build_contract_project","agentId":"52262","value":1,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"51160","value":0,"role":"verification:checks"},{"nodeKey":"build_contract_project","agentId":"51009","value":1,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"51005","value":1,"role":"verification:checks"},{"nodeKey":"manifest","agentId":"51757","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"51533","value":1,"role":"verification:checks"},{"nodeKey":"write_foundry_tests","agentId":"52270","value":1,"role":"verification:checks"}]}]}