{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"5d0ffc9d-4502-44ef-8a9e-cc9f158f2a3a","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project","write_foundry_tests","frontend_for_contract","manifest"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project","write_foundry_tests","frontend_for_contract","manifest"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project","write_foundry_tests","frontend_for_contract","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project","write_foundry_tests","frontend_for_contract","manifest"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project","write_foundry_tests","frontend_for_contract","manifest"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"failed"},{"acceptedSubmissionHash":null,"dependsOn":["write_foundry_tests"],"execution":{"mustProduce":["dist/index.html"],"network":true,"optionalTools":["browser"],"profile":"foundry","requires":["network"],"skillHash":"7a8712ac362fd9796a2d33fcee6ee3ad1adaefb41673944a34b3d34ef78b3e37","skillId":"frontend-for-contract","tools":[]},"key":"frontend_for_contract","kind":"code","role":"implement","skillHash":"7a8712ac362fd9796a2d33fcee6ee3ad1adaefb41673944a34b3d34ef78b3e37","skillId":"frontend-for-contract","state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project","write_foundry_tests","frontend_for_contract"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"waiting"},{"acceptedSubmissionHash":null,"dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","state":"waiting"}],"objective":"CROWN MODEL 2 (the Throne) - one immortal token per ticker, and a registry that decides who controls it. Build the full system, deploy it on Robinhood Chain (chainId 4663), and deliver a working end-to-end demo.\n\nCONCEPT: A registry binds a ticker to exactly ONE token contract, forever - one Dexscreener page, one chart, one pool, history never resets. What changes hands is the throne: the controller/beneficiary who receives the token's hook fee stream. A Uniswap v4 hook on the token's pool skims a cut of every swap and pays it, inside the same transaction, to the registry's current beneficiary for that ticker (pay-at-source: fees must never be stored in the hook or pooled for claiming). Anyone can challenge for the throne with a bonded ETH stake-vote naming a candidate beneficiary wallet; if the challenger out-stakes the reigning side within the window and quorum is met, the registry flips the beneficiary after a timelock and every subsequent swap pays the new controller. The token, its supply, and its pool NEVER change - a dethrone moves control only.\n\nCONTRACT 1 - ThroneRegistry:\n- ticker is bytes32 = keccak256 of the uppercase symbol string.\n- registerTicker(ticker, token, beneficiary): callable once per ticker; the token address is immutable afterward - no setter may exist, by construction.\n- openChallenge(ticker, candidateBeneficiary) payable: bond 0.01 ETH; one live challenge per ticker; challengeable only after MIN_REIGN (a constructor parameter, production default 7 days); 3-day cooldown per ticker after a failed challenge. A challenge names a candidate beneficiary wallet - there is no challenger token in this model.\n- stake(challengeId, side) payable in ETH during a 72-hour window (side = reigning or challenger).\n- finalize(challengeId) after the window plus a 24-hour timelock: the challenger wins iff challenger stake > reigning stake AND total staked >= 0.05 ETH quorum. On a win, the registry beneficiary (and controller) flips to the candidate and a Reign record is appended (controller, from, to, how the reign ended). Losing side: 80% refundable to its stakers (pull pattern), 20% slashed - half of the slash pro-rata to winning-side stakers (pull), half to treasury 0xf19F11Dee16a341671E6Ed3e209b704C1Bbc3E57. Winning side stake is fully refundable (pull).\n- Public reign history per ticker (the dynasty log) and per-ticker stake totals. Events: TickerRegistered, ChallengeOpened, Staked, Dethroned, ChallengeFailed.\n- No admin functions after deployment beyond the constructor parameter init; resolution is purely rule-based.\n\nCONTRACT 2 - CrownHook (Uniswap v4; afterSwap and afterSwapReturnsDelta permissions):\n- afterInitialize records poolId -> ticker; the deployer registers each pool ticker explicitly.\n- On every swap: compute the cut (per-pool bps set at init, default 100, range 0-500) from the swap amount, read registry.beneficiary(ticker), take the cut as the hook delta and transfer it to the beneficiary within the same settlement. Maintain a public counter crownPaid[ticker][currency] (cumulative).\n- The hook must never revert or block a swap: if the registry read or the transfer fails, the swap proceeds without the cut.\n\nDEMO LAUNCH (this launch token): name \"Throne Demo\", symbol THRONE, paired with native ETH on Robinhood Chain, pool wearing CrownHook, registered as the genesis entry for ticker THRONE with beneficiary = the launch payer wallet. Deploy the demo registry instance with MIN_REIGN = 0 (the production default of 7 days stays in the code and README) so a full challenge -> stake -> finalize -> beneficiary flip can be executed end-to-end immediately after launch; name the second beneficiary wallet used in the demo flip in the delivery notes.\n\nSITE: the ticker single canonical page - the token and its pool links, the current throne holder (controller and beneficiary), the reign history timeline (the dynasty log), live challenge state (window, both stakes, time remaining), stake and challenge actions wired to the contracts, and a plain-English how-it-works section.\n\nTESTS (Foundry, in the repo): registry and challenge math unit tests (bond, quorum, slash split exact to the wei); an integration test that executes buy -> challenge -> stake -> finalize -> buy and asserts (a) the fee recipient changed, (b) crownPaid matches the transfers, and (c) the token address stored in the registry is byte-identical before and after the dethrone. Contracts must compile with the repo pinned settings and be Sourcify-verifiable; record the compiler settings in the README.","parentJobId":null,"planHash":"ba7d2269effb4cf9bac043f029b868d0c6f31ddaa2d250bbed71865a950de56a","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"5d0ffc9d-4502-44ef-8a9e-cc9f158f2a3a","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1875-crown-model-2-throne"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"e1da98cc732598619d9ccf3c619fc3cef7754bb306e563c20063e285c0cb5b5a","state":"blocked","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"665adaf4bb30b4d1","findings":[],"hash":"2f8ea005ac33e73e90af6be736b29b2db82bb790541368b861df115628e58a7c","nodeId":"7d0ad011-e07f-4227-8d8d-74c3971c9d83","outcome":"failed","summary":"needs input: The unconditional swap-liveness requirement conflicts with allowing arbitrary beneficiary wallets while limiting the hook to a registry read and direct beneficiary transfer. A local Foundry reproduction against the real Uniswap v4 PoolManager confirmed that a contract beneficiary can accept an ETH fee, call PoolManager.mint(address(this), 0, 1) in receive(), and leave its own transient debt. The fee transfer succeeds, so catch-on-transfer-failure and a hook-local reentrancy guard cannot stop the enclosing unlock from reverting with CurrencyNotSettled. Implementing the requested guarantee needs an approved change to the call constraint or supported-recipient policy. — Should the hook waive native-ETH fees for beneficiaries with executable code (including smart wallets and EIP-7702 accounts), or may it add payout-isolation and PoolManager-accounting calls beyond the specified registry read and direct transfer?","treeHash":null,"usage":{"cachedInputTokens":3270400,"inputTokens":295360,"model":"gpt-6-astra","outputTokens":78611,"runtime":"codex","turns":9,"wallClockMs":2594431}}],"verification":[]}