Each package owns a focused implementation plan and task checklist. Start with the package closest to the change, then follow cross-package dependencies outward.
| Package | Plan | Tasks | Primary Concern |
|---|---|---|---|
shared |
PLAN.md | TODO.md | Shared wire contracts, schemas, token scopes, request hashing, lifecycle state, and compatibility harnesses. |
daemon |
PLAN.md | TODO.md | Local privileged server, HTTP/WebSocket, MCP operator surface, key storage, daemon defaults, queue, signing, simulation, auth, pairing, audit history, and minimal launcher. |
provider |
PLAN.md | TODO.md | Browser EIP-1193 provider, daemon transport, pending request resolution, event behavior, token storage, and Wagmi/Viem compatibility. |
wagmi |
PLAN.md | TODO.md | Wagmi v2 connector glue, Viem interop, chain switching, account events, peer dependencies, and integration fixtures. |
walletconnect |
PLAN.md | TODO.md | WalletConnect wallet-side pairing, session proposals, session requests, namespaces, and transport into the daemon queue. |
ui |
PLAN.md | TODO.md | Optional React components, wallet status, pending requests, request inspection, accessibility, theming, fixtures, and tests. |
examples/dapp |
PLAN.md | TODO.md | End-to-end integration playground that proves dapp request creation, MCP/operator approval, daemon broadcast, and provider promise resolution without browser approval controls. |
shared: lock the shared contracts and validation harness.daemon: implement the queue, auth/pairing, daemon defaults, signing boundary, and MCP/API surfaces.provider: implement browser transport and EIP-1193 behavior against daemon contracts.walletconnect: implement WalletConnect transport against daemon request/session contracts.wagmi: wrap provider behavior in Wagmi v2 connector conventions.ui: build display and request-inspection components on top of provider/shared state.examples/dapp: wire the full flow into an integration playground.
If a change crosses package boundaries, update shared first and add compatibility tests before changing callers. The daemon remains the only signing boundary.
Configurable request rules are out of scope for the MVP. Initial implementation should use fixed daemon defaults and scoped authorization.