Proposal 136435 to upgrade the NNS dapp (2025-05-02)

Hi everyone :waving_hand:

A new proposal to upgrade the NNS dapp has just gone live. Proposal 136435 is ready, please consider voting :ballot_box_with_ballot:

This upgrade introduces SNS topics support, which improves two key areas:

  1. Topic-based voting delegation — users can now follow neurons by SNS topic (if supported by SNS) instead of by individual proposal types (NS-functions).
  1. Proposal filtering by topic — making it easier to browse and engage with proposals relevant to each area of governance.

:blue_book: Learn more in the tutorial
:thread: Original forum discussion: SNS Topics Plan

Change Log

Added

  • Topic-based filtering for SNS proposals
  • Topic-based SNS neuron voting delegation

Wasm Verification

To build the wasm module yourself and verify its hash, run the following commands from the root of the nns-dapp repo:


git fetch # to ensure you have the latest changes.

git checkout "d3fc4f088806f3a5178133c4935e2a2dafdf4c29"

git merge-base --is-ancestor HEAD origin/main && echo "OK" || echo "Commit is not on main branch!"

./scripts/docker-build

sha256sum nns-dapp.wasm.gz

You may also want to verify the canister arguments. In the proposal they are

binary, which is not very readable. Docker provides both binary and text formats

and you can verify that the text format corresponds to the binary arg_hash

field in the proposal.


cat nns-dapp-arg-mainnet.did

didc encode "$(cat nns-dapp-arg-mainnet.did)" | xxd -r -p | sha256sum

5 Likes

This is going to be a big improvement. Thank you so much to the DFINITY team for implementing features that will improve the user experience for configuring Followees.

2 Likes

TL;DR

For two reasons, DFINITY rejected NNS proposal 136435 and asks the other voting neurons to do the same.

  1. There is a missing confirmation in one flow where users are not properly warned about the consequence of their actions.
  2. A proposal will be submitted to make an additional SNS topic “DAO community settings” critical (see here). It is easier for users to get used to one new UI after all changes rather than seeing two changes within a short time.

1. Missing confirmation flow

Background

Currently, “Catch-all” followees are displayed under every non-critical topic as regular legacy following tags. Due to the nature of this specific type, unfollowing it results in being unfollowed from all non-critical topics.

That’s why there’s a dedicated flow to deactivate the “Catch-all” following — including an extra confirmation step where the user can review the consequences of their action.

The issue

In the frontend as it would be released in the proposal 136435, users can click the X button on the “Catch-all” tag under a topic description to remove it — without any confirmation. This is suboptimal behavior because users might assume they’re only removing the “Catch-all” for that specific topic. As a result, they could unintentionally lose their current “Catch-all” setup.

Proposed Change

To avoid this confusion, the plan is to allow removing the “Catch-all” following only via the “Deactivate catch-all” button and to always show the confirmation step.

2. Proposing the topic “DAO community settings” to be critical

As requested by the community, a proposal is planned to make the topic “DAO community settings” critical. You can read up on the details in this post.

Introducing the new topic-based following today, where only 2 proposal topics are critical, and soon following up with another release that moves another topic to be critical might be confusing for users. It is easier for users to introduce all changes in one release so that users only have to get familiar with a new UI once. Therefore, we think it is better to defer the frontend release until the NNS has decided whether an additional topic should be critical.

2 Likes

The CodeGov known neuron has voted to reject as requested.

1 Like

A new proposal to upgrade the NNS dapp has just gone live (Proposal 136473).

This update fixes the “Missing confirmation flow” and includes several minor enhancements to the voting delegation experience. Please consider voting :ballot_box_with_ballot:

Change Log

Added

  • Topic-based filtering for SNS proposals
  • Topic-based SNS neuron voting delegation

Wasm Verification

To build the wasm module yourself and verify its hash, run the following commands from the root of the nns-dapp repo:

git fetch  # to ensure you have the latest changes.
git checkout "7ce5a491f73e70b201780d2afc5b5b2abbc63358"
git merge-base --is-ancestor HEAD origin/main && echo "OK" || echo "Commit is not on main branch!"
./scripts/docker-build
sha256sum nns-dapp.wasm.gz

You may also want to verify the canister arguments. In the proposal they are
binary, which is not very readable. Docker provides both binary and text formats
and you can verify that the text format corresponds to the binary arg_hash
field in the proposal.

cat nns-dapp-arg-mainnet.did
didc encode "$(cat nns-dapp-arg-mainnet.did)" | xxd -r -p | sha256sum
1 Like