{"workflow":null,"planning":null,"id":"c4c16270-7cf8-43d8-9dfa-2ac15eba7015","state":"completed","template":"skill:build-website","objective":"Build and host a brand-new website for the live OG launch (#1040, Ethereum mainnet) from this job's accepted code. Use skill build-website, host on IMD with site label og. Contracts are live, do not deploy anything:\n- OG token 0xce7eb1ad9e2e1c784ea05f7ea4a0fe625923d10a\n- OGHook 0x22fded8abce0d93979ebb2a04cfc37c110abe0cc (pool: native ETH / OG, fee 12500, tickSpacing 60)\n- OGDistributor 0xd450ea80aec46b8bffdf0c4f44d3964489b613f2 (hook.distributor())\n- OGAuction 0xb0d2d2cfe7a1b14d1f34135c3c7a8d152c4262e9 (distributor.auction())\n- Swarm Pepe collection 0x999ce0CE8C5f7661e0c74a568FfE27CEB9177bDB\nRead ABIs, function names and events from the accepted sources in this job; read every number from chain, never hardcode values the contracts expose.\n\nPAGES\n- Home: what OG is in plain words (trade fee in ETH goes to activated Swarm Pepes, levels L1/L2/L3 with weights 1/2/4, exit by handing in the NFT, auction burns OG), live price, market cap, total burned, ETH paid to holders, launch fee now and minutes left of the decay.\n- Trade: buy and sell OG for ETH through the v4 pool with our hook (Universal Router or the job's router if one exists), slippage setting, quote before signing with the 3.5% hook fee plus 1.25% pool fee shown separately.\n- My Pepes: the connected wallet's Swarm Pepes rendered from on-chain tokenURI, each with level, weight, pending ETH and live earnings rate; activate or upgrade with OG (approve + call, upgrade pays only the difference) or with ETH; exit with the 24h lock countdown and a clear warning that the NFT goes to auction at level 0.\n- Leaderboard: all activated Pepes by level and pending ETH.\n- Auctions: every live Dutch auction with image, current OG price ticking down, start, floor and time left; buy with OG; past sales.\n- Stats: totalWeight, active NFTs per level, backlog left and stream end, team and holder fee totals, live events feed (buys, sells, activations, upgrades, exits, auction sales).\n\nRULES\nWallets: injected only (EIP-6963 discovery, MetaMask, Rabby), no WalletConnect, no API keys. Reads through public RPC https://ethereum-rpc.publicnode.com. Check chainId 1 and offer a switch. Every write shows what will happen and the exact amounts before the wallet opens; tx links to etherscan.io. Static site, no backend, works on mobile.\nDesign: new, dark, pixel-art, Pepe green accents, pixel font, minimal and fast. Links: collection on OpenSea, x.com/swarmpepes, etherscan for each contract.\nTest on a mainnet fork: buy, sell, activate, upgrade, exit, auction buy from the site against the real contracts.","blockedReason":null,"createdAt":"2026-10-08T11:49:15.193Z","updatedAt":"2026-10-08T12:27:30.985Z","paidBy":"0x90738abe9b04622dc0b3d015a3964cc7d1fd1859","parentJobId":"babb0da2-bd96-4fe7-b753-945acdf5872e","project":{"id":"babb0da2-bd96-4fe7-b753-945acdf5872e","head":"bad95a63-e563-47f2-a6f6-40605fddd953","running":null,"versions":[{"jobId":"babb0da2-bd96-4fe7-b753-945acdf5872e","workflowId":null,"objective":"Build a token with a Uniswap v4 hook and an NFT reward distributor for the Swarm Pepe collection (SPEPE, 0x999ce0CE8C5f7661e0c74a568FfE27CEB9177bDB, Ethereum mainnet). The collection contract cannot be changed and has no transfer hooks. Minting is still open (verify onchain; totalSupply() reverts, use totalMinted()). Launch kind univ4_hook on Ethereum mainnet, paired with ETH: the launch's standard token and pool with our hook, plus our distributor and auction contracts. Deploy in the launch. No website in this job: an existing site will integrate the contracts later, so keep clean ABIs, events and the views below. No owner powers after launch, no upgradeability, no pause.\n\nToken name: OG. Symbol: OG. The launch's standard token (1,000,000,000, 18 decimals, plain transfers); \"burn\" in this spec means sending to 0x000000000000000000000000000000000000dEaD, counted in a public totalBurned.\n\nSTART FROM EXISTING CODE: this exact project was already built and accepted (build_contract_project, all checks passed) in job a38b37bd-6caa-4756-9aa2-6033c44ac713; its source is the accepted bundle https://api.imd.fun/bundles/8d918c729607f1be5c14bc1b4d2e4b162b6f121f8462e77dad3af25760b1d064. Download it and use it as the starting point; keep its logic and only fix what review finds. That job stopped at manifest only because the pool start price was missing.\n\nPool (launch.json): Ethereum univ4_hook policy 34, paired with native ETH (currency0 = ETH, currency1 = OG), fee 12500, tickSpacing 60, opening market cap 10 ETH per policy (100,000,000 OG per ETH), initialPrice 792281625142643375935439503360000 (decimal sqrtPriceX96).\n\nWhen the hook acts: on every swap in this pool, taking its fee from the settled ETH deltas (beforeSwap/afterSwap with return deltas), and enforcing the launch protection below.\n\nHOOK FEE: 3.5% on every buy and every sell, 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. Of it: 2.5% of the trade to the distributor, 1% of the trade to the team wallet 0x90738ABe9b04622Dc0b3d015a3964Cc7D1Fd1859.\n\nLAUNCH PROTECTION: open to everyone from the first block. For the first 60 minutes after the pool opens, the buy fee decays linearly from 50% to the normal 3.5%. Everything above 3.5% goes to the distributor backlog, none to the team. After minute 60: normal fees.\n\nDISTRIBUTOR (per tokenId, weighted, no loops):\n- An NFT earns nothing until activated. Levels and weights: L1 = 1, L2 = 2, L3 = 4.\n- Activation burns OG. Cumulative cost: L1 = 50,000, L2 = 150,000, L3 = 400,000 OG (upgrading pays only the difference). Costs fixed in code, no oracle. Only the current ownerOf(tokenId) can activate or upgrade. Also activation with ETH: the contract buys the exact OG amount through the pool (paying the hook fee like any buyer) and burns it.\n- Accrual: accPerWeight += eth * SCALE / totalWeight; pending(id) = weight[id] * accPerWeight / SCALE - debt[id]. A new activation or upgrade settles pending first and sets debt at the current accumulator, so it never earns past fees.\n- Level and pending ETH belong to the tokenId and travel with the NFT on any transfer or marketplace sale.\n- Backlog: fees that arrive while totalWeight = 0 (and the launch-protection surplus) are held and streamed into the accumulator linearly over 30 days once something is active, never paid as a windfall to the first activator.\n\nEXIT (the only way to get ETH):\n- No claim that keeps the NFT. To receive its pending ETH, the owner hands the NFT to the contract and is paid everything accrued on it in the same transaction. Its level is cleared and its weight leaves totalWeight.\n- Exit is not allowed within 24 hours after the NFT's last activation or upgrade.\n\nAUCTION:\n- The exited NFT is immediately listed in a Dutch auction priced in OG.\n- Start price = max(10x the previous auction's sale price, 500,000 OG). Exponential decay over 36 hours down to a floor of 50,000 OG; at the floor it stays listed until someone buys.\n- 100% of auction proceeds are burned. The buyer receives the NFT at level 0 with zero accrual and must activate it to earn.\n\nVIEWS for the existing website (also emit an event for every activation, upgrade, exit, auction listing, sale and fee split): totalWeight, active NFTs per level, pending(id), level(id), backlog left and its stream end, current auctions with live prices, last sale price, total burned, launch fee now and minutes left of the decay.\n\nTESTS (Foundry, mainnet fork): fee in ETH on both sides and both exact modes and the 2.5/1 split; launch fee decay over 60 minutes and surplus to backlog; weighted accrual and upgrade math; no retroactive rewards; backlog streaming with zero active; level and pending travelling with transfers; exit payout and the 24h lock; auction start/decay/floor and burn; reentrancy on ETH sends and ERC-721 transfers; ETH solvency and weight conservation invariants. Independent review of the economics and every contract.","baseCommit":"0243d7da4a4337ae8b16bcdf15bb4ead736fd68f","state":"completed","createdAt":"2026-10-08T10:19:37.800Z"},{"jobId":"c4c16270-7cf8-43d8-9dfa-2ac15eba7015","workflowId":null,"objective":"Build and host a brand-new website for the live OG launch (#1040, Ethereum mainnet) from this job's accepted code. Use skill build-website, host on IMD with site label og. Contracts are live, do not deploy anything:\n- OG token 0xce7eb1ad9e2e1c784ea05f7ea4a0fe625923d10a\n- OGHook 0x22fded8abce0d93979ebb2a04cfc37c110abe0cc (pool: native ETH / OG, fee 12500, tickSpacing 60)\n- OGDistributor 0xd450ea80aec46b8bffdf0c4f44d3964489b613f2 (hook.distributor())\n- OGAuction 0xb0d2d2cfe7a1b14d1f34135c3c7a8d152c4262e9 (distributor.auction())\n- Swarm Pepe collection 0x999ce0CE8C5f7661e0c74a568FfE27CEB9177bDB\nRead ABIs, function names and events from the accepted sources in this job; read every number from chain, never hardcode values the contracts expose.\n\nPAGES\n- Home: what OG is in plain words (trade fee in ETH goes to activated Swarm Pepes, levels L1/L2/L3 with weights 1/2/4, exit by handing in the NFT, auction burns OG), live price, market cap, total burned, ETH paid to holders, launch fee now and minutes left of the decay.\n- Trade: buy and sell OG for ETH through the v4 pool with our hook (Universal Router or the job's router if one exists), slippage setting, quote before signing with the 3.5% hook fee plus 1.25% pool fee shown separately.\n- My Pepes: the connected wallet's Swarm Pepes rendered from on-chain tokenURI, each with level, weight, pending ETH and live earnings rate; activate or upgrade with OG (approve + call, upgrade pays only the difference) or with ETH; exit with the 24h lock countdown and a clear warning that the NFT goes to auction at level 0.\n- Leaderboard: all activated Pepes by level and pending ETH.\n- Auctions: every live Dutch auction with image, current OG price ticking down, start, floor and time left; buy with OG; past sales.\n- Stats: totalWeight, active NFTs per level, backlog left and stream end, team and holder fee totals, live events feed (buys, sells, activations, upgrades, exits, auction sales).\n\nRULES\nWallets: injected only (EIP-6963 discovery, MetaMask, Rabby), no WalletConnect, no API keys. Reads through public RPC https://ethereum-rpc.publicnode.com. Check chainId 1 and offer a switch. Every write shows what will happen and the exact amounts before the wallet opens; tx links to etherscan.io. Static site, no backend, works on mobile.\nDesign: new, dark, pixel-art, Pepe green accents, pixel font, minimal and fast. Links: collection on OpenSea, x.com/swarmpepes, etherscan for each contract.\nTest on a mainnet fork: buy, sell, activate, upgrade, exit, auction buy from the site against the real contracts.","baseCommit":"2b618def940c6686b92f10261a03eaca29e8f8ce","state":"completed","createdAt":"2026-10-08T11:49:15.193Z"},{"jobId":"bad95a63-e563-47f2-a6f6-40605fddd953","workflowId":null,"objective":"Add a \"Paper\" farming section to the existing OG site (label og). Use skill build-website. Do not change any existing OG pages or logic. Base it on the research report from job e3b0f9f8-c9bc-4731-a600-d7c0361d61d4: https://api.imd.fun/artifacts/2b2485f3acc59f4892046cf63f5cd468913bf53cbb92bbc110973160d0187bf0 (read it fully, follow its design A: non-custodial guided frontend).\n\nPapertrade has not opened trading or published contracts and relayer API yet. Build everything that works now; trading stays disabled behind a clear \"enabled at Papertrade launch\" state. Never guess contract addresses, relayer endpoints or signatures.\n\nWORKS NOW\n- Holder check: connect wallet (injected only, EIP-6963), read Swarm Pepe 0x999ce0CE8C5f7661e0c74a568FfE27CEB9177bDB ownership and level/weight from OGDistributor 0xd450ea80aec46b8bffdf0c4f44d3964489b613f2, and OG balance 0xce7eb1ad9e2e1c784ea05f7ea4a0fe625923d10a. Show \"holder\" badge. Read-only.\n- Calculator with the exact formulas from the report (deadband, impact params, 2% win fee, loss basis 0.98/1.0, mint curve, liquidation): inputs market BTC/ETH, deposit in ETH or USDC, leverage, target move, close order, queue state, stake share, route costs. Outputs: margin per leg, notional, PAPER minted, net cost, cost per PAPER, cash at risk if the win is queued, staker rebate, bust distance. Default preset 25x, 1% move, 80% allocation.\n- Route quote: ETH → USDC on Ethereum → CCTP to Hyperliquid, with live gas and fees where publicly readable; minimum 10 USDC + 1 USDC activation. Display only, no transactions.\n- Guided flow UI with all steps from the report (fund, session key, open pair, monitor, close loser then winner, stake, withdraw), each step showing what it will do; action buttons disabled with \"enabled at Papertrade launch\".\n- Live panel placeholder for tracked LP, queue length, PAPER supply, total staked, mint rate: \"live data at launch\" until addresses are published.\n- Guide and risks: how the hedged pair works, queue risk, hard-bust liquidation, non-transferable PAPER, upgradeable contracts, relayer dependence. Button to the official app papertrade.xyz and docs.\n\nCODE READY FOR LAUNCH\nKeep a single config file for Papertrade addresses, chain 999, relayer URL and EIP-712 types, empty by default; when empty, all execution stays off. Structure the state machine and relayer adapter from the report so wiring them later only needs the official values.\n\nRULES\nStatic site, public RPC only, no API keys, no backend, no custody, keys never leave the browser. Same style as the rest of the OG site, works on mobile.","baseCommit":"c1d98b5d3f2b417fada047ee59bd45d23fe4c024","state":"completed","createdAt":"2026-10-08T16:03:28.995Z"}]},"deliver":true,"host":true,"site":{"id":"50aec24b-344a-45c7-ba1c-169fe626c581","jobId":"c4c16270-7cf8-43d8-9dfa-2ac15eba7015","kind":"launch","tokenId":null,"agentId":null,"url":"https://og.site.identitymd.eth.limo","status":"named","holdReason":null,"takenDownAt":null,"takenDownReason":null,"label":null,"cid":"bafybeigvj7mbzeicukdvbuz3v4fanvqynij7yiuaf76xuyijwafhy5q7iq","bytes":634986,"ensName":"og.site.identitymd.eth","txHash":"0x199ccf410316aacff770aec54577bf4da1b7c651006752ac6fecc1f88a6b6619","blockNumber":26147684,"attempts":0,"failure":null,"pinnedAt":"2026-10-08T12:27:47.697Z","namedAt":"2026-10-08T12:28:51.358Z","supersededBy":"05d29d00-418b-4d4a-a9c6-15e5979f499d","supersededAt":"2026-10-08T17:05:27.793Z","createdAt":"2026-10-08T12:27:30.985Z","updatedAt":"2026-10-08T17:05:27.793Z"},"launch":{"requested":false,"kind":null,"id":null,"status":null,"chainId":null},"oracleRequestId":null,"delivery":{"repoUrl":"https://github.com/identity-md-launches/launch-1040-og-symbol-og-the-launch-s-standard-token","pullRequestUrl":"https://github.com/identity-md-launches/launch-1040-og-symbol-og-the-launch-s-standard-token/pull/2","commit":"c1d98b5d3f2b417fada047ee59bd45d23fe4c024","deliveredAt":"2026-10-08T12:27:51.126Z","media":null},"media":null,"nodes":[{"key":"build_website","role":"implement","state":"accepted","attempt":1,"revisions":0,"judgeRevisions":0,"dependsOn":[],"allowedPaths":[],"failureReason":null,"dispatchNote":null,"dispatchNoteAt":null,"updatedAt":"2026-10-08T12:27:30.985Z","verdict":{"status":"accepted","profile":"none","evaluation":"structural","rejectionCode":null,"detail":"paths and tree verified; no suite was run for this kind of work","verifierVersion":"0.1.0+ad90ce4c","verifiedTreeHash":"90b2fa7d77d10a55bfd534a0c685e162a6cf4081","at":"2026-10-08T12:27:30.988Z","failedChecks":[]},"seat":{"tokenId":"1313","agentId":"51296"},"live":null}],"reviews":[{"status":"queued","chainId":1,"txHash":null,"blockNumber":null,"sentAt":null,"entries":[{"nodeKey":"build_website","agentId":"51296","value":1,"role":"verification:structural"}]}]}