Hi all,
DFINITY has begun working on the SNS Topics feature. Here is a more concrete plan we would like to put forward for the community.
Problem
SNS users are able to cast votes on more proposals than they can manually track by following other neurons’ voting decisions. This maximizes their voting rewards and potential impact on the SNS community. However, setting up neuron following is currently too complicated, as a separate decision is required for each individual proposal type; some SNSs already have dozens of custom proposal types, and counting. The screenshot below illustrates the problem.
Goal
The goal is to improve how users can choose whom to follow by enabling topic-based following. Instead of having to set this up based on individual proposal types, we propose SNSs to group all their proposals into 7 clearly specified topics, as proposed in Lara’s post.
Plan
For brevity, we refer to neuron following based on proposal types as legacy following. The scope of this proposal is to introduce topic-based following and deprecate legacy following.
Recall that there are native and custom proposal types (the latter used to be called generic functions). Examples of the former include UpgradeSnsControlledCanister, TransferSnsTreasuryFunds, Motion. Custom proposals are specific to each SNS.
To simplify understanding the severity of proposals within each topic, each of the 7 introduced topics will be marked either as critical or non-critical. There will be two critical topics: Treasury & asset management and Critical dapp operations. Proposals under a critical topic will have to meet stricter requirements before being approved, which enhances security for potentially dangerous operations, e.g., TransferSnsTreasuryFunds will be under the critical topic Treasury & asset management. An example of a non-critical topic is the Governance topic which will include, e.g., proposals of type Motion.
While each native proposal type will have the same topic in each SNS, each SNS community will define the topics of their custom functions.
We propose to deliver this feature in four milestones, as outlined below.
1. Each native proposal has a topic
Frontends may start grouping proposals into topics to aid users.
- Native proposals are assigned topics (same for all SNSs)
- Some topics are marked as critical.
While adding a new custom proposal type, a topic for that type will need to be specified. Functions that have already been added will be listed as “uncategorized.”
The neuron following will not yet be affected.
Heads-up for SNS frontends. After this milestone, frontends will be able to use topics to enhance the user interface, specifically, for the neuron following page.
2. Each custom proposal has a topic
A new SNS proposal type will be added, SetTopicsForCustomProposals, so that an SNS community can efficiently define the topics of all of its existing custom proposal types.
If a proposal type is under a critical topic, the proposals of that type will be critical.
Custom proposal types that do not yet have a topic will remain non-critical (this is the current behavior for all custom proposals).
3. Requirement of custom functions to be categorized
Users can set topic-based following for their neurons. If a neuron has topic-based following and legacy following, topic-based following is preferred; otherwise, legacy following will still have effect.
Proposals without topics can no longer be submitted until their topic is defined.
Heads-up for SNS frontends. After this milestone, frontends may support setting new topic-based following. For SNSs that did not yet upgrade to have topic-based following (if any), legacy following must still be supported.
4. Following on individual proposal types is deprecated
Users will be able to set up topic-based neuron following.
Users will no longer be able to modify legacy following. Existing following settings will not be changed as part of this plan, so users who are already happy with their (legacy) following settings will not need to take any action.
Heads-up for SNS frontends. After this milestone, frontends must support editing topic-based following. For SNSs that did not yet upgrade to have topic-based following (if any), legacy following must still be supported.
Summary and next steps
We think that this new design will radically simplify the onboarding process for new SNS community members. Currently, most users need to take dozens of actions for each individual proposal type. Our proposed design will help users make fewer, more informed decisions that do not require the knowledge about each proposal type. and reduce the number of decisions while making them more purposeful
As we make progress towards each milestone, we will communicate more details about it in this thread. In the meantime, please let us know if you have any questions regarding the plan.