{"id":"2759fb3d-89a9-4c2f-a5e3-6472208fac0e","objective":"Sworn - an ownerless registry of facts about wallets: build the three-contract registry of this repository from its specification alone, every line new, deploy it on Ethereum mainnet, then build its user-facing website and host it at a public URL. STARTING TREE: https://github.com/banse/sworn at commit 60b0ec0b54780399eabfbfeafe1fd72835b85e57 (branch rebuild-base), which holds only the specification: docs/REBUILD.md on top (self-contained, it wins on any conflict) and docs/SITE.md for the site. Earlier trees of this product are not an input. CONTRACTS: write src/ (Registry, Composer, Renderer), test/, script/Deploy.s.sol and tools/gen_template.py from docs/REBUILD.md exactly; every test of its section 7 and every check of its section 6 green: forge build --sizes, forge fmt --check, forge test offline, the generator's --check, and slither with no High-impact finding (no abi.encodePacked of two or more strings, no shift of a constant by a variable). The three runtimes together at most 69,800 bytes. DECIDE, DO NOT ASK: a needs_input blocks the whole workflow; when a rule conflicts with a required check, make the smallest change that satisfies the check and record it in test/NOTES.md. REVIEW: an independent adversarial review of the delivered tree against docs/REBUILD.md before deployment. DEPLOYMENT: evm_contracts on Ethereum mainnet (chainId 1), in this order and nothing else: Renderer (no constructor arguments), Composer (no constructor arguments), then Registry with curator 0xcb0b0531e86a9ac36fa865ca8e3dbccf047fda91, imd 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, intake 0xa43e6f75ee006411f79ac1c84120606c2330de82, attester 0x5598aa9146215bc13eb26f2c692ad1461fd32982, renderer $contract:Renderer, composer $contract:Composer, burnExecutor 0xe29386719C155B6847aD5a4E97C6674f10ffc750. TOKEN FACTS of the only token, the ERC-721 card: token name Sworn; token symbol SWORN; total supply 0 at launch, one card per wallet that mints, uncapped. NO COIN: no ERC-20; fees are paid in the existing IMD token; no owner. SITE (after deployment): build web/ from docs/SITE.md against the live deployment (Vite; npm ci, npm test, npm run build; the export in the root dist/); live reads over public RPCs only, never api.imd.fun. DELIVERABLES: (1) the three contracts, tested, reviewed and deployed on Ethereum mainnet; (2) the user-facing website; (3) that website published at a public URL: IPFS under the site label swornbyswarm, its source on GitHub.","status":"completed","waitingForHosting":false,"failure":null,"chainId":1,"createdAt":"2026-10-21T17:12:20.728Z","updatedAt":"2026-10-21T21:13:47.694Z","contracts":{"id":"4f2565af-3ba6-4fde-9444-473ed6b1ee68","state":"completed","failure":null,"repoUrl":"https://github.com/identity-md-launches/launch-2404-renderer-composer-registry","commit":"c4ff3238390fc51962fb67e86affc20cf418126e"},"frontend":{"id":"45cf2dd9-57bc-4f94-beda-7c63c8c67457","state":"completed","failure":null,"repoUrl":"https://github.com/identity-md-launches/launch-2412-workflow-frontend-stage-context","commit":"b8c9d5453fe84f49db430f434ddb6866165f5e57"},"frontendPlan":{"skill":"build-website","objective":"Sworn - an ownerless registry of facts about wallets: build the three-contract registry of this repository from its specification alone, every line new, deploy it on Ethereum mainnet, then build its user-facing website and host it at a public URL. STARTING TREE: https://github.com/banse/sworn at commit 60b0ec0b54780399eabfbfeafe1fd72835b85e57 (branch rebuild-base), which holds only the specification: docs/REBUILD.md on top (self-contained, it wins on any conflict) and docs/SITE.md for the site. Earlier trees of this product are not an input. CONTRACTS: write src/ (Registry, Composer, Renderer), test/, script/Deploy.s.sol and tools/gen_template.py from docs/REBUILD.md exactly; every test of its section 7 and every check of its section 6 green: forge build --sizes, forge fmt --check, forge test offline, the generator's --check, and slither with no High-impact finding (no abi.encodePacked of two or more strings, no shift of a constant by a variable). The three runtimes together at most 69,800 bytes. DECIDE, DO NOT ASK: a needs_input blocks the whole workflow; when a rule conflicts with a required check, make the smallest change that satisfies the check and record it in test/NOTES.md. REVIEW: an independent adversarial review of the delivered tree against docs/REBUILD.md before deployment. DEPLOYMENT: evm_contracts on Ethereum mainnet (chainId 1), in this order and nothing else: Renderer (no constructor arguments), Composer (no constructor arguments), then Registry with curator 0xcb0b0531e86a9ac36fa865ca8e3dbccf047fda91, imd 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, intake 0xa43e6f75ee006411f79ac1c84120606c2330de82, attester 0x5598aa9146215bc13eb26f2c692ad1461fd32982, renderer $contract:Renderer, composer $contract:Composer, burnExecutor 0xe29386719C155B6847aD5a4E97C6674f10ffc750. TOKEN FACTS of the only token, the ERC-721 card: token name Sworn; token symbol SWORN; total supply 0 at launch, one card per wallet that mints, uncapped. NO COIN: no ERC-20; fees are paid in the existing IMD token; no owner. SITE (after deployment): build web/ from docs/SITE.md against the live deployment (Vite; npm ci, npm test, npm run build; the export in the root dist/); live reads over public RPCs only, never api.imd.fun. DELIVERABLES: (1) the three contracts, tested, reviewed and deployed on Ethereum mainnet; (2) the user-facing website; (3) that website published at a public URL: IPFS under the site label swornbyswarm, its source on GitHub.","acceptanceCriteria":[]},"launch":{"id":"1377d17c-3f09-49e8-87e7-20a07ad45ea9","status":"live"},"validation":{"status":"passed","attempts":1,"startedAt":"2026-10-21T21:13:28.583Z","deadlineAt":"2026-10-22T21:13:28.583Z","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 45 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 website did not answer yet; ENS points the name at this CID, and the site is live on IPFS as verified above.","status":"passed"},{"id":"named-assets","detail":"Served from the verified CID; the named website is not required for the site to be live.","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-10-21T21:13:32.533Z","retryable":false}},"brief":"# Approved workflow\n\nSworn - an ownerless registry of facts about wallets: build the three-contract registry of this repository from its specification alone, every line new, deploy it on Ethereum mainnet, then build its user-facing website and host it at a public URL. STARTING TREE: https://github.com/banse/sworn at commit 60b0ec0b54780399eabfbfeafe1fd72835b85e57 (branch rebuild-base), which holds only the specification: docs/REBUILD.md on top (self-contained, it wins on any conflict) and docs/SITE.md for the site. Earlier trees of this product are not an input. CONTRACTS: write src/ (Registry, Composer, Renderer), test/, script/Deploy.s.sol and tools/gen_template.py from docs/REBUILD.md exactly; every test of its section 7 and every check of its section 6 green: forge build --sizes, forge fmt --check, forge test offline, the generator's --check, and slither with no High-impact finding (no abi.encodePacked of two or more strings, no shift of a constant by a variable). The three runtimes together at most 69,800 bytes. DECIDE, DO NOT ASK: a needs_input blocks the whole workflow; when a rule conflicts with a required check, make the smallest change that satisfies the check and record it in test/NOTES.md. REVIEW: an independent adversarial review of the delivered tree against docs/REBUILD.md before deployment. DEPLOYMENT: evm_contracts on Ethereum mainnet (chainId 1), in this order and nothing else: Renderer (no constructor arguments), Composer (no constructor arguments), then Registry with curator 0xcb0b0531e86a9ac36fa865ca8e3dbccf047fda91, imd 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, intake 0xa43e6f75ee006411f79ac1c84120606c2330de82, attester 0x5598aa9146215bc13eb26f2c692ad1461fd32982, renderer $contract:Renderer, composer $contract:Composer, burnExecutor 0xe29386719C155B6847aD5a4E97C6674f10ffc750. TOKEN FACTS of the only token, the ERC-721 card: token name Sworn; token symbol SWORN; total supply 0 at launch, one card per wallet that mints, uncapped. NO COIN: no ERC-20; fees are paid in the existing IMD token; no owner. SITE (after deployment): build web/ from docs/SITE.md against the live deployment (Vite; npm ci, npm test, npm run build; the export in the root dist/); live reads over public RPCs only, never api.imd.fun. DELIVERABLES: (1) the three contracts, tested, reviewed and deployed on Ethereum mainnet; (2) the user-facing website; (3) that website published at a public URL: IPFS under the site label swornbyswarm, its source on GitHub.\n\nEthereum mainnet (chainId 1), evm_contracts; no token is created: the only token is the ERC-721 card (token name Sworn, token symbol SWORN, total supply unlimited, no cap, 0 at launch: one card per wallet, minted on demand); no ERC-20, no coin. GitHub publication is approved: publish the delivered contracts tree and the site tree to GitHub as the workflow does; the entrant's own repository remains the upstream source and takes the delivered commits afterwards. IPFS hosting approved under the site label swornbyswarm (if it cannot be reused by this workflow, host under the plane's label). Compiler as foundry.toml: solc 0.8.24, optimizer 200 runs, cancun, bytecode_hash none, cbor_metadata false; lib/, foundry.toml and remappings.txt do not change. The starting tree has no src/, test/, script/, tools/ or web/: the builder creates them. The recipe of docs/REBUILD.md 4.2 reads three mainnet contracts by address and is tested against a local fixture; it needs no new dependency in the Registry. The plane's audit nodes run on the delivered tree; a finding on a docs/REBUILD.md rule is resolved in the review step, not by removing the rule.\n\nBuild Sworn from docs/REBUILD.md on a tree that holds the specification alone, with tests and an independent adversarial review, deploy the three contracts on Ethereum mainnet (Renderer, Composer, then Registry with the seven constructor arguments of the request), then build the site in web/ from docs/SITE.md against the live deployment and host it.\n","handoff":{"chainId":1,"repoUrl":"https://github.com/identity-md-launches/launch-2404-renderer-composer-registry","version":1,"launchId":"1377d17c-3f09-49e8-87e7-20a07ad45ea9","manifest":{"kind":"evm_contracts","notes":"Sworn is an ownerless registry of wallet facts. Renderer and Composer are deployed first and referenced by Registry. Registry uses the approved Ethereum mainnet curator, existing IMD token, Intake, attester and BurnExecutor V2 addresses. All contracts are configured at construction; deployment sends no ETH and requires no initialization calls.","contracts":[{"contract":"Renderer","constructorArgs":[]},{"contract":"Composer","constructorArgs":[]},{"contract":"Registry","constructorArgs":["0xcb0b0531e86a9ac36fa865ca8e3dbccf047fda91","0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7","0xa43e6f75ee006411f79ac1c84120606c2330de82","0x5598aa9146215bc13eb26f2c692ad1461fd32982","$contract:Renderer","$contract:Composer","0xe29386719C155B6847aD5a4E97C6674f10ffc750"]}]},"contracts":[{"name":"Renderer","txHash":"0x2f65613f267fc2a5eb38efc3c1534fe47b184bd5f63f7bda975f6a17136016cf","abiHash":"61a60df208f0a8712452ebc563183e54d1e5ba8b43dfa1a26fbe54f265b73817","address":"0x3039eaf3b979759c77a2a3fc62850f9534162c3b","blockNumber":26242885,"creationCodeHash":"892879059b4f88665811d57ff5daff5c404f8d7924bb90083d305d99df38f3ae"},{"name":"Composer","txHash":"0x2f65613f267fc2a5eb38efc3c1534fe47b184bd5f63f7bda975f6a17136016cf","abiHash":"37b9a6c54c65f302558b81c741465e5559c33284612d2046b4ffbfff6584eb6d","address":"0xf564dd76bd081554170c5e0b78144abfb39f7061","blockNumber":26242885,"creationCodeHash":"bd7570d4c50d13ec64a8cca37a91e5d5006e065adcfffad10e410e8e0245c1ea"},{"name":"Registry","txHash":"0x2f65613f267fc2a5eb38efc3c1534fe47b184bd5f63f7bda975f6a17136016cf","abiHash":"681346b3fa66ff9c620fb255a9617b0f102e975f5ad492bab6d4afd2f608e031","address":"0x0da2679000ea5380d1361cc3cca7d4e8c881f766","blockNumber":26242885,"creationCodeHash":"b1533b0db052829fa71eb3335654ad6d0b95df2e07283398c5fcdc4c7bfb80ff"}],"sourceCommit":"c4ff3238390fc51962fb67e86affc20cf418126e","abiInstructions":"Build ABIs from this exact source commit; compare canonicalKeccak(abi) with abiHash. Verify deployed code on the stated chain before enabling transactions.","attestationHash":"7afa89428facc92ccd863a1b1d36ef9384b58fe2108465765b35e60eb78377c7"},"site":{"status":"named","cid":"bafybeiazwlvrtxi5j337gcoaue4nsr6ifnugzkzxaggcxu665iljtr2jjy","ensName":"swornbyswarm.site.identitymd.eth","ensParent":null,"failure":null}}