{"id":"b41fdc9b-e5bf-4bae-b3a9-070eb80327ef","objective":"Build Cadence: a simple, elegant protocol on Sepolia with its own token CDNC, the SubscriptionRegistry contract, a full Foundry test suite, independent reviews, GitHub publication and a public website on IPFS to use it. SubscriptionRegistry rules: anyone pays a fixed CDNC amount per thirty-day period to keep a subscription active, paying several periods ahead; isActive(address) reads on chain; payments go to a beneficiary set by the first caller once; no refunds.","status":"completed","waitingForHosting":false,"failure":null,"chainId":11155111,"createdAt":"2026-09-21T15:10:20.572Z","updatedAt":"2026-09-21T21:09:24.171Z","contracts":{"id":"9d1cbe7e-6370-4fb8-bdd6-bca7d6f21dd6","state":"completed","failure":null,"repoUrl":"https://github.com/Identity-md/launch-87-workflow-contract-stage-context","commit":"b3b48187345fa441609c2646bbeeabf0bc4975e8"},"frontend":{"id":"7c92af1d-48e7-4df1-baf5-2c9f38552d4f","state":"completed","failure":null,"repoUrl":"https://github.com/Identity-md/launch-105-workflow-frontend-stage-context","commit":"2353f3a7950ef06ad954d916c9e92abe0f0af549"},"frontendPlan":{"skill":"frontend-for-contract","objective":"Build Cadence: a simple, elegant protocol on Sepolia with its own token CDNC, the SubscriptionRegistry contract, a full Foundry test suite, independent reviews, GitHub publication and a public website on IPFS to use it. SubscriptionRegistry rules: anyone pays a fixed CDNC amount per thirty-day period to keep a subscription active, paying several periods ahead; isActive(address) reads on chain; payments go to a beneficiary set by the first caller once; no refunds.","acceptanceCriteria":[]},"launch":{"id":"85ea44b4-5c75-4e69-9f72-c5434c0841ed","status":"live"},"validation":{"status":"passed","attempts":20,"startedAt":"2026-09-21T16:50:09.789Z","deadlineAt":"2026-09-22T16:50:09.789Z","nextAttemptAt":null,"report":{"scope":"Read-only HTTP checks of the named and immutable entrypoints, declared static asset hashes and HTML references, published deployment configuration and ABI hashes, and operator-RPC chain/code existence. Does not execute JavaScript, prove the app consumes the configuration, test browser/wallet interactions, validate quotes or simulate/broadcast swaps.","checks":[{"id":"deployment-config","detail":"Published launch, chain, source, attestation and exact contract configuration match the trusted handoff.","status":"passed"},{"id":"static-assets","detail":"All 74 declared assets are reachable and match their SHA-256 digests.","status":"passed"},{"id":"html-assets","detail":"Parsed entrypoint resource references stay within the declared relative export.","status":"passed"},{"id":"named-entrypoint","detail":"The named site's index is reachable and matches the immutable IPFS index byte for byte.","status":"passed"},{"id":"named-assets","detail":"The named site's HTML resources, deployment configuration and ABIs are reachable and match the immutable export.","status":"passed"},{"id":"contract-abis","detail":"Every published contract ABI matches its attested canonical Keccak hash.","status":"passed"},{"id":"chain-state","detail":"The operator RPC reports the expected chain and nonempty bytecode at every deployed contract address.","status":"passed"}],"status":"passed","summary":"Published site availability, declared assets, deployment configuration, ABIs and chain/code checks passed.","version":1,"checkedAt":"2026-09-21T21:07:14.595Z","retryable":false}},"brief":"# Approved workflow\n\nBuild Cadence: a simple, elegant protocol on Sepolia with its own token CDNC, the SubscriptionRegistry contract, a full Foundry test suite, independent reviews, GitHub publication and a public website on IPFS to use it. SubscriptionRegistry rules: anyone pays a fixed CDNC amount per thirty-day period to keep a subscription active, paying several periods ahead; isActive(address) reads on chain; payments go to a beneficiary set by the first caller once; no refunds.\n\nThe network has about sixty agents online; two independent reviews are wanted, one on the contracts and manifest before deployment and one final review after the site. Follow the evm-project-launch guidance: a fixed-supply ERC-20 with 18 decimals and a zero-argument constructor minting the whole supply to its deployer with no mint backdoor, and one application contract whose only constructor argument is the token address passed as $token. Contributors never broadcast and never receive keys; the admitted release goes through the deployer on Sepolia, chain 11155111. Source publication to GitHub and website hosting on IPFS are both authorized. The website must load dist/imd-deployment.json as its runtime deployment configuration and its ABIs from there, use React, Vite, TypeScript, RainbowKit, wagmi and viem, keep its source under web/ and export a relative-base static build to dist/.\n\nBuild and independently review Cadence, SubscriptionRegistry: anyone pays a fixed CDNC amount per thirty-day period to keep a subscription active, paying several periods ahead; isActive(address) reads on chain; payments go to a beneficiary set by the first caller once; no refunds, for a Sepolia project launch, then a public website to use it. Token: Cadence (CDNC), 18 decimals, zero-argument constructor minting the whole supply to its deployer, no mint backdoor. Contract SubscriptionRegistry: constructor takes only the token address ($token). No fee, owner, admin, upgradeability or external calls beyond the token; checks-effects-interactions; events for every state change. Thorough Foundry tests for every path, including wrong amounts, unauthorized callers, timing boundaries and reentrancy through a malicious token. The manifest names the token and the contract with the $token argument. Independent adversarial review of the contracts and manifest before deployment. Then the website: connect, set the beneficiary once, subscribe for N periods, see my expiry, check any address; loads dist/imd-deployment.json and its ABIs; React, Vite, TypeScript, RainbowKit, wagmi, viem; source in web/, static export in dist/. A final independent review of the whole delivery.\n","handoff":{"chainId":11155111,"repoUrl":"https://github.com/Identity-md/launch-87-workflow-contract-stage-context","version":1,"launchId":"85ea44b4-5c75-4e69-9f72-c5434c0841ed","manifest":{"kind":"evm_project","pool":{"fee":3000,"tickSpacing":60,"initialPrice":"79228162514264337593543950336","pairedCurrency":"0x0000000000000000000000000000000000000000"},"notes":"Cadence subscription launch, matching the accepted tree at src/Cadence.sol and src/SubscriptionRegistry.sol.\n\nToken: Cadence (CDNC), 18 decimals, nonpayable zero-argument constructor that mints the whole fixed supply of 1,000,000,000 CDNC (10^27 minor units) to msg.sender, which is the factory at launch. No mint, burn, owner, admin, pause, proxy or upgrade path exists, so the supply observed by the project floor never changes.\n\nApplication contract: SubscriptionRegistry, the only application contract in the accepted tree. Its constructor signature is constructor(address token_), so the single constructorArgs entry is the address-typed backward reference $token, resolving to the launch token deployed earlier in this manifest. The constructor stores the token in an immutable and rejects the zero address or an address with empty code; the token is deployed before it, so the check passes. There are no other constructor parameters, no initialization calls and no further contracts, so no $contract references are used.\n\nOwnership and privileged roles: the registry declares no owner, admin or fee role, so no $owner argument is present and no wallet is named. The subscription price (10 CDNC) and period (30 days) are source constants, not constructor inputs, because the approved brief allows only the token address in this constructor. The registry's beneficiary is not a constructor argument: setBeneficiary is permissionless and first-caller-wins, set once and never changeable. That is the accepted design and is deliberately outside the manifest, which has no field for it. Because the constructor cannot preset it, the beneficiary must be set by an operator transaction after deployment; that post-deployment step and the front-running window it implies belong to the deployer/operator runbook in README.md, not to this manifest. This manifest grants no privileged role to anyone.\n\nPool: no hook, paired against native ETH (zero address) on Sepolia with fee 3000, tickSpacing 60 and initialPrice 79228162514264337593543950336, the 1:1 sqrtPriceX96 value. These are pool parameters only and assert no market valuation; the factory seeds liquidity with the launch token.\n\nOut of manifest scope by schema: supply, allocations, contributor lock/cap, treasury, chainId (Sepolia 11155111), policyVersion, gas ceilings, source/ABI/bytecode hashes and authorization. Those come from launch policy, the release attestation and admission, not from this file. Contracts are nonpayable, use no DELEGATECALL, CALLCODE or SELFDESTRUCT, and the registry's only external interaction is the CDNC transferFrom performed after its state effects under a reentrancy guard.","token":{"name":"Cadence","symbol":"CDNC","contract":"Cadence","decimals":18},"contracts":[{"contract":"SubscriptionRegistry","constructorArgs":["$token"]}]},"contracts":[{"name":"Cadence","txHash":"0x76e99e9bf4ad6723edc3a54c593315824141de33a92572d3a471a52bd07540fe","abiHash":"dbe8faf237636e09f5df4a47f354b908cd5c78d2cbd121e4f09293af31335433","address":"0xc4c95fee607301105102c812bb0e70e593006479","blockNumber":11751861,"creationCodeHash":"7ee5221972e49909369102bc5cec4adce1d533e94df9a094f08b71170385180f"},{"name":"SubscriptionRegistry","txHash":"0x76e99e9bf4ad6723edc3a54c593315824141de33a92572d3a471a52bd07540fe","abiHash":"969f7895a38bcf1547967ab91708cecd702da60905577797737d61e93579e040","address":"0x7bf4926e59d2fc450dc48e2ba88d8f3df361d64e","blockNumber":11751861,"creationCodeHash":"4e49a6a0526a4020d8d5452e5eacdc89746ca62339d8a0b23e0a9cc4d54a96d7"}],"sourceCommit":"b3b48187345fa441609c2646bbeeabf0bc4975e8","abiInstructions":"Build ABIs from this exact source commit; compare canonicalKeccak(abi) with abiHash. Verify deployed code on the stated chain before enabling transactions.","attestationHash":"c380ad756e98551f123c5b1301a3a396a7e550fb32e89a7ed2cbd95c6d5be016"},"site":{"status":"named","cid":"bafybeiei37zeiylhqejpuyzhrr3eosqw7lpsi7l5k7ukmkyt4m3ujtr5pa","ensName":"cdnc.site.identitymd.eth","failure":null}}