Skip to content

Add a Governor Interface for Curate V1 #376

Description

@fortuvp

Add a Governor Interface for Curate V1

Context

Updating Curate V1 list parameters is currently possible only by manually building the tx or via block explorers. Therefore, governors need to interact with contracts manually or rely on unofficial tools, which creates risks when changing sensitive parameters like courts, deposits, stake multipliers, and policies.

We need an official governor interface for Curate V1, either inside the current frontend or as a separate frontend.

Goal

Create an interface where a governor wallet can connect, see the lists it governs, review current parameters, and prepare safe parameter update transactions.
2 Options

A . fully integrated into curate v1 (if the stack permits)
B . Separate official app

Requirements

1. Detect governed lists

When a wallet connects, the frontend should detect which Curate lists are governed by that wallet.

The interface should show only lists where:

governor() == connectedWallet

If no lists are found, the frontend should show a clear empty state with a message "You currently do not control any Registry."

If lists are found, it should display them as a list or cards (we can re-use our current stacks from scout or curate)

2. Show current list parameters

After selecting a list, the governor should see the main details (list name, description, image) plus all current parameters:

  • Governor address
  • Arbitrator
  • Arbitrator extra data
  • Court -> if possible, decoded in a human readable way when possible (it is possible when creating a list, we could replicate the same logic)
  • Challenge period duration
  • Submission base deposit
  • Removal base deposit
  • Submission challenge base deposit
  • Removal challenge base deposit
  • Winner stake multiplier
  • Loser stake multiplier
  • Shared stake multiplier
  • Connected TCR
  • Relayer contract
  • Current policy metadata, if available

for each parameter, it is important to display the units. Eventually convert some of the parameters to more familiar units (eg from wei to tokens or from seconds to hours)

3. Allow only governor parameter changes

The interface should only include governor related actions.

Based on the ABI, the relevant parameter update functions are:

  • changeGovernor
  • changeArbitrationParams
  • changeChallengePeriodDuration
  • changeConnectedTCR
  • changeRelayerContract
  • changeSubmissionBaseDeposit
  • changeRemovalBaseDeposit
  • changeSubmissionChallengeBaseDeposit
  • changeRemovalChallengeBaseDeposit
  • changeWinnerStakeMultiplier
  • changeLoserStakeMultiplier
  • changeSharedStakeMultiplier

UX Requirements

Court selection

The governor should not have to manually enter raw decimals or encoded extra data.

The frontend should:

  • Load the real court options on Gnosis.
  • Let the governor select the court in a human readable way.
  • Encode the selected court into the correct arbitratorExtraData.
  • Show both the human readable court and the raw encoded value before transaction submission.

This should work similarly to the court selection flow used when creating a new registry.

Policy update helper

Updating a policy should be easier and less error prone.

Ideally, the frontend should allow the governor to:

  • Upload a new policy PDF.
  • Upload the PDF to IPFS.
  • Fetch the latest meta evidence.
  • Update the policy related fields in the metadata JSON.
  • Upload the updated JSON to IPFS.
  • Prepare the changeArbitrationParams transaction.

Human readable values

The frontend should show both raw and human readable values where useful.

Examples:

  • Deposits shown in token units, not only wei.
  • Challenge period shown in days or hours, not only seconds.
  • Stake multipliers shown with percentage interpretation where possible.
  • Court shown by name and ID, not only encoded bytes.

Safe compatibility

The flow should work properly with Safe.

This is important because the previous unofficial tool had poor Safe compatibility.

Out of Scope

This issue should not include regular Curate actions.

Do not include:

  • addItem
  • addItemDirectly
  • removeItem
  • removeItemDirectly
  • challengeRequest
  • fundAppeal
  • submitEvidence
  • executeRequest
  • withdrawFeesAndRewards
  • rule

This issue is only about governor parameter management.

Criteria Summary

  • A governor can connect a wallet and see the lists governed by that wallet.
  • A governor can open a list and see all current parameters.
  • A governor can prepare transactions for governor controlled parameter updates.
  • Court selection is human readable.
  • Policy updates are easier and less error prone.
  • Values are shown in both raw and human readable formats where useful.
  • A transaction preview is shown before submission.
  • The interface works properly with Safe.
  • Non governor Curate actions are not included.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions