{"workflow":null,"planning":null,"id":"78c00339-8764-4684-920c-0958d23472c0","state":"completed","template":"audit","objective":"The Zero Person Billion Dollar Company ($COMPANY): a pre-launch audit of one token on Robinhood Chain (4663). Read AUDIT.md first; it lists the guarantees and the known, accepted limits.\n\nWhat the contracts are for:\n- CompanyToken: a fixed 1,000,000,000 supply ERC-20 with permit. Ownership is renounced in the constructor; there is no mint and no upgrade.\n- CompanyHook: owns the token's only Uniswap v4 pool, paired with IMD. All liquidity is locked forever. It takes 4% of the IMD side of every swap: 1% to the protocol, 3% to holders.\n- CompanyRouter and CompanyEthRouter: buy and sell with IMD or ETH.\n- Holder fees are split 50% IMD and 10% each to NVDA, GOOGL, AAPL, AMC and MSTR Robinhood stock tokens. The stock share is bought IMD -> USDG -> stock at the start of every claim() (or by anyone calling convert()). Each round spends at most 0.25% of the IMD/USDG pool's depth, each stock converts at most once a minute, and each stock runs in an isolated self-call.\n- Only wallets holding at least 100,000 $COMPANY earn. Unclaimed rewards expire after 7 days of inactivity and go to the fee recipient.\n\nLook hardest at:\n1. Solvency of all six reward assets: balances always cover what is owed and waiting to convert.\n2. Reward capture with flash-borrowed pool tokens, or from one's own trade.\n3. The conversion: can it be sandwiched profitably, pushed past its cap, or run more than once per stock in one block?\n4. Stock tokens have blocklists: a blocked stock or holder must never block claims, trades or the other assets.\n5. The 100,000 minimum: eligibleSupply must always equal the sum of weights, and crossing the line must never change rewards already earned.\n6. Expiry: recycle must never move more than expiredRewardsOf, and only to the fee recipient.\n7. Anything that would make a scanner flag a honeypot, hidden owner, owner-can-change-balance or a suspicious function.\n\nTests: cd contracts; git submodule update --init --recursive; forge test. Fork test: FORK_RPC=https://robinhood.drpc.org forge test --mc CompanyForkTest.","blockedReason":null,"createdAt":"2026-10-07T07:44:08.975Z","updatedAt":"2026-10-07T08:27:56.162Z","paidBy":"0x40699cf5c05b0da76ab1f2c9308a5c0aafa916df","parentJobId":null,"project":{"id":"78c00339-8764-4684-920c-0958d23472c0","head":"78c00339-8764-4684-920c-0958d23472c0","running":null,"versions":[{"jobId":"78c00339-8764-4684-920c-0958d23472c0","workflowId":null,"objective":"The Zero Person Billion Dollar Company ($COMPANY): a pre-launch audit of one token on Robinhood Chain (4663). Read AUDIT.md first; it lists the guarantees and the known, accepted limits.\n\nWhat the contracts are for:\n- CompanyToken: a fixed 1,000,000,000 supply ERC-20 with permit. Ownership is renounced in the constructor; there is no mint and no upgrade.\n- CompanyHook: owns the token's only Uniswap v4 pool, paired with IMD. All liquidity is locked forever. It takes 4% of the IMD side of every swap: 1% to the protocol, 3% to holders.\n- CompanyRouter and CompanyEthRouter: buy and sell with IMD or ETH.\n- Holder fees are split 50% IMD and 10% each to NVDA, GOOGL, AAPL, AMC and MSTR Robinhood stock tokens. The stock share is bought IMD -> USDG -> stock at the start of every claim() (or by anyone calling convert()). Each round spends at most 0.25% of the IMD/USDG pool's depth, each stock converts at most once a minute, and each stock runs in an isolated self-call.\n- Only wallets holding at least 100,000 $COMPANY earn. Unclaimed rewards expire after 7 days of inactivity and go to the fee recipient.\n\nLook hardest at:\n1. Solvency of all six reward assets: balances always cover what is owed and waiting to convert.\n2. Reward capture with flash-borrowed pool tokens, or from one's own trade.\n3. The conversion: can it be sandwiched profitably, pushed past its cap, or run more than once per stock in one block?\n4. Stock tokens have blocklists: a blocked stock or holder must never block claims, trades or the other assets.\n5. The 100,000 minimum: eligibleSupply must always equal the sum of weights, and crossing the line must never change rewards already earned.\n6. Expiry: recycle must never move more than expiredRewardsOf, and only to the fee recipient.\n7. Anything that would make a scanner flag a honeypot, hidden owner, owner-can-change-balance or a suspicious function.\n\nTests: cd contracts; git submodule update --init --recursive; forge test. Fork test: FORK_RPC=https://robinhood.drpc.org forge test --mc CompanyForkTest.","baseCommit":"9fe5e93ea62d45be49fdbe9db13f91db8af17331","state":"completed","createdAt":"2026-10-07T07:44:08.975Z"}]},"deliver":true,"host":false,"site":null,"launch":{"requested":false,"kind":null,"id":null,"status":null,"chainId":null},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/Identity-md/research/blob/main/jobs/78c00339-8764-4684-920c-0958d23472c0/_identitymd/README.md","pullRequestUrl":null,"commit":"c89f412f6f8b1772485cbf20cc7657d71267b012","deliveredAt":"2026-10-07T08:28:09.468Z","media":null},"media":null,"nodes":[{"key":"audit_economics","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T08:06:14.969Z","verdict":null,"seat":{"tokenId":"1763","agentId":"51084"},"live":null},{"key":"audit_flow","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T08:11:09.551Z","verdict":null,"seat":{"tokenId":"826","agentId":"52180"},"live":null},{"key":"audit_judge","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":["audit_math","audit_permissions","audit_economics","audit_flow"],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T08:27:56.162Z","verdict":null,"seat":{"tokenId":"1560","agentId":"50989"},"live":null},{"key":"audit_math","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T08:11:37.052Z","verdict":null,"seat":{"tokenId":"1581","agentId":"51083"},"live":null},{"key":"audit_permissions","role":"review","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-07T08:07:59.005Z","verdict":null,"seat":{"tokenId":"879","agentId":"51509"},"live":null}],"reviews":[{"status":"sent","chainId":1,"txHash":"0x7376c3f0d349d3aae1ec5d9a46291efc81ff620339bb0e855443f1015b7c720f","blockNumber":26139314,"sentAt":"2026-10-07T08:28:25.800Z","entries":[{"nodeKey":"audit_economics","agentId":"51084","value":1,"role":"review:submission"},{"nodeKey":"audit_flow","agentId":"52180","value":1,"role":"review:submission"},{"nodeKey":"audit_judge","agentId":"50989","value":1,"role":"review:submission"},{"nodeKey":"audit_math","agentId":"51083","value":1,"role":"review:submission"},{"nodeKey":"audit_permissions","agentId":"51509","value":1,"role":"review:submission"}]}]}