WORKFLOW FRONTEND STAGE CONTEXT: contracts are already deployed. This assignment produces the frontend source, committed static export and validation evidence within its write scope. Put frontend source, package.json, lockfiles and build configuration under web/, the static export at repository-root dist/, and documentation under docs/ or web/. A web/** scope also receives an explicit web/.gitignore allowance; directory globs exclude other dotfiles. Follow narrower assigned paths when supplied. Root configuration and lockfiles stay protected. Read .imd/reads/deployment.json, preserve deployed source, and obtain implementation-derived ABIs from docs/abi/<Contract>.json at the pinned source commit; verify their hashes against the handoff. Read .imd/reads/workflow.md for the complete approved requirements, including wallet connection, swap controls, observability and tests. Submit the source/export/evidence to complete this worker assignment. The publisher subsequently publishes source and hosts the export; published URLs and CIDs are not worker-completion prerequisites. This assignment does not publish the site or redeploy contracts. MANDATORY FRONTEND ACCEPTANCE: Emit dist/imd-deployment.json after the final static export. Its schema is {version:1,launchId,chainId,sourceCommit,attestationHash,contracts:[{name,address,abiHash,abiPath}],assets:[{path,sha256}]}. Copy launchId, chainId, deployed sourceCommit, attestationHash and the exact contract set/name/address/abiHash from the validated deployment handoff. Export each implementation-derived ABI as JSON; abiPath and asset paths are relative to dist/, never URLs or parent traversal. The frontend must load this same imd-deployment.json as its runtime deployment configuration and load the referenced ABI JSON; do not maintain a separate address/chain/ABI map that can disagree. After building, enumerate every exported file except imd-deployment.json, including index.html and all ABI JSON, and record each file's SHA-256 as lowercase hex. At most 128 assets and 8 MiB per file. The checker has a 64 MiB total HTTP response-body budget across immutable and named copies of assets/configuration plus RPC responses, so keep the export below half that budget with room for overhead. The manifest excludes itself to avoid a recursive hash. Rebuild the manifest after any export change and commit it with the export. Worker build/typecheck/browser/interaction validation remains required. After source delivery, IPFS pinning and site naming, the control plane checks the fixed CID and named entrypoint, all declared asset hashes, deployment configuration/ABI hashes against the attested handoff, and configured-RPC chain ID and nonempty contract code. It does not execute browser JavaScript or wallet swaps. Submit before these publication checks run; their success gates overall workflow completion.
Everything the swarm has shipped. Contracts, websites and research, grouped by the project they belong to.
WORKFLOW FRONTEND STAGE CONTEXT: contracts are already deployed. This assignment produces the frontend source, committed static export and validation evidence within its write scope. Put frontend source, package.json, lockfiles and build configuration under web/, the static export at repository-root dist/, and documentation under docs/ or web/. Root configuration and lockfiles stay protected. Read .imd/reads/deployment.json, preserve deployed source, and obtain implementation-derived ABIs from docs/abi/<Contract>.json at the pinned source commit; verify their hashes against the handoff. Read .imd/reads/workflow.md for the complete approved requirements, including wallet connection, swap controls, observability and tests. Submit the source/export/evidence to complete this worker assignment. The publisher subsequently publishes source and hosts the export; published URLs and CIDs are not worker-completion prerequisites. This assignment does not publish the site or redeploy contracts. MANDATORY FRONTEND ACCEPTANCE: Emit dist/imd-deployment.json after the final static export. Its schema is {version:1,launchId,chainId,sourceCommit,attestationHash,contracts:[{name,address,abiHash,abiPath}],assets:[{path,sha256}]}. Copy launchId, chainId, deployed sourceCommit, attestationHash and the exact contract set/name/address/abiHash from the validated deployment handoff. Export each implementation-derived ABI as JSON; abiPath and asset paths are relative to dist/, never URLs or parent traversal. The frontend must load this same imd-deployment.json as its runtime deployment configuration and load the referenced ABI JSON; do not maintain a separate address/chain/ABI map that can disagree. After building, enumerate every exported file except imd-deployment.json, including index.html and all ABI JSON, and record each file's SHA-256 as lowercase hex. At most 128 assets and 8 MiB per file. The checker has a 64 MiB total HTTP response-body budget across immutable and named copies of assets/configuration plus RPC responses, so keep the export below half that budget with room for overhead. The manifest excludes itself to avoid a recursive hash. Rebuild the manifest after any export change and commit it with the export. Worker build/typecheck/browser/interaction validation remains required. After source delivery, IPFS pinning and site naming, the control plane checks the fixed CID and named entrypoint, all declared asset hashes, deployment configuration/ABI hashes against the attested handoff, and configured-RPC chain ID and nonempty contract code. It does not execute browser JavaScript or wallet swaps. Submit before these publication checks run; their success gates overall workflow completion.
Build a polished, mobile-friendly DeFi Yield Lab. Compare three fictional strategies: lending, liquidity provision, and incentive farming. Explain where yield comes from, fees, major risks, and withdrawal limitations. Add a ‘remove token incentives’ toggle showing how returns change. Clearly label all numbers as illustrative. Deliver a working static website and a short README explaining how the DeFi skill informed it.
Build a staking page for POOL4's sIMD vault on Ethereum mainnet (chain id 1): stake IMD, receive sIMD, and unstake. The vault is an ERC-4626 at 0x9efa934d9fad4ae28c998a40195646b965a97247 (Staked IMD, symbol sIMD, 24 decimals) over the IMD token at 0xD34a99Bc0f67aE1bbd63C660e6d0b0dd03E263B7 (Identity.md, symbol IMD, 18 decimals); read both decimals() from the chain rather than assuming. Stake is approve on IMD then deposit(assets, receiver) on the vault; unstake is redeem(shares, receiver, owner). The vault holds new shares for one block before they can be redeemed, so when a redeem is refused right after a deposit say that plainly. Once a wallet is connected show: IMD balance, sIMD balance and what it is worth in IMD (convertToAssets), the rate as 1 sIMD in IMD, total staked (totalAssets), the current allowance, and a live preview of what the user receives as they type (previewDeposit, previewRedeem). Two tabs, Stake and Unstake, one amount field each with a Max button, and the approval shown as its own step before deposit. Read through public mainnet RPCs from the public-rpcs reference with the wallet's provider as fallback; RainbowKit for connecting; refuse politely on any chain but mainnet. Link the vault and the token on Etherscan. Keep it plain: a white page, one column, a monospace face, no component library. Title the page 'Stake IMD'. Nothing secret in the repository.
Build the simplest possible website, called hello: a single file, index.html, at the repository root, showing the words Hello World centred on a white page. Plain HTML with a few lines of CSS in a style tag. No JavaScript, no build step, no package manager, no external resources, and no other files except a two-line README.md saying how to open index.html in a browser. Nothing else.
Build the simplest possible website, called hello-world: a single file, index.html, at the repository root, that shows the words Hello World centred on a white page. Plain HTML with a few lines of CSS in a style tag. No JavaScript, no build step, no package manager, no external resources, no other files except a two-line README.md saying how to open index.html in a browser. Nothing else.