Frontend — Routing
Summary
SECURITY.md documents a real risk in the weighted-governance model: if a single owner's weight reaches the current quorum requirement on its own, that owner can approve and execute proposals alone, turning the multisig into a single point of failure. This issue surfaces that risk visually on the owners page instead of leaving it as something only readable in a security document.
Background
docs/SECURITY.md's "Whale-Owner Risk" section explains that approve sums weight from whichever owners call it and derive_status only compares that sum against quorum_weight — nothing distinguishes weight contributed by one owner versus several. An owner whose weight alone is >= threshold can unilaterally control the multisig. Separately, the contract enforces a configurable single-owner weight cap via MAX_SINGLE_OWNER_WEIGHT_PCT (50% by default, readable through the get_max_single_owner_weight_pct view) that bounds what any one ChangeOwnerWeight proposal can grant a single owner. There is currently no visual indicator anywhere in the frontend for either condition — a user has to already know to read the security doc to understand the risk.
What Needs to Be Done
- On
OwnersPage, compute each owner's percentage share of total weight (already available once the page redesign lands) and flag any owner above a configurable warning threshold with a visible badge or highlight.
- As the most severe case, specifically flag (with distinct, more urgent styling) any owner whose weight alone is greater than or equal to the current quorum requirement — this is the condition
SECURITY.md identifies as turning the multisig into a single point of failure.
- Default the general warning threshold to the contract's configured
MAX_SINGLE_OWNER_WEIGHT_PCT (fetched live, not hardcoded to 50%), so the UI warning stays in sync if a deployment changes that configuration.
- Keep the indicator purely informational — it should not block any action, only make the risk visible to whoever is reviewing the owners list.
- Add a short explanatory tooltip or note near the indicator summarizing why this matters, in plain language consistent with how the rest of the app explains contract behavior to non-technical users.
Acceptance Criteria
Files to Look At
frontend/src/pages/OwnersPage.tsx — where the indicator is added, using owner-weight and quorum data already available on the page
docs/SECURITY.md — "Whale-Owner Risk" and single-owner weight cap sections that define exactly which conditions this indicator should flag
frontend/src/lib/contract.ts — source of getMaxSingleOwnerWeightPct-style and getRequiredQuorumWeight-style wrappers needed to compute the thresholds
Difficulty: Medium
Frontend — Routing
Summary
SECURITY.mddocuments a real risk in the weighted-governance model: if a single owner's weight reaches the current quorum requirement on its own, that owner can approve and execute proposals alone, turning the multisig into a single point of failure. This issue surfaces that risk visually on the owners page instead of leaving it as something only readable in a security document.Background
docs/SECURITY.md's "Whale-Owner Risk" section explains thatapprovesums weight from whichever owners call it andderive_statusonly compares that sum againstquorum_weight— nothing distinguishes weight contributed by one owner versus several. An owner whose weight alone is>= thresholdcan unilaterally control the multisig. Separately, the contract enforces a configurable single-owner weight cap viaMAX_SINGLE_OWNER_WEIGHT_PCT(50% by default, readable through theget_max_single_owner_weight_pctview) that bounds what any oneChangeOwnerWeightproposal can grant a single owner. There is currently no visual indicator anywhere in the frontend for either condition — a user has to already know to read the security doc to understand the risk.What Needs to Be Done
OwnersPage, compute each owner's percentage share of total weight (already available once the page redesign lands) and flag any owner above a configurable warning threshold with a visible badge or highlight.SECURITY.mdidentifies as turning the multisig into a single point of failure.MAX_SINGLE_OWNER_WEIGHT_PCT(fetched live, not hardcoded to 50%), so the UI warning stays in sync if a deployment changes that configuration.Acceptance Criteria
OwnersPage.SECURITY.md.Files to Look At
frontend/src/pages/OwnersPage.tsx— where the indicator is added, using owner-weight and quorum data already available on the pagedocs/SECURITY.md— "Whale-Owner Risk" and single-owner weight cap sections that define exactly which conditions this indicator should flagfrontend/src/lib/contract.ts— source ofgetMaxSingleOwnerWeightPct-style andgetRequiredQuorumWeight-style wrappers needed to compute the thresholdsDifficulty: Medium