Multiple OpenSnsTokenSwap Proposals Update


Hello IC Community,

As mentioned in this forum post, there was a bug discovered during the intent to launch an SNS for Modclub. Due to a race condition, multiple OpenSnsTokenSwap proposals were submitted, even though it should only be possible to submit one such proposal at a time. Because there were multiple proposals, the idea was to reject all proposals except for proposal 123929. When the first proposal was rejected (proposal 123925) an automatic cleanup mechanism of the system was triggered. This cleanup mechanism has the following effects:

  1. Sets the state of the SNS targeted by the rejected OpenSnsTokenSwap proposal to Aborted.
  2. Returns the Neurons’ Fund investment back to the NNS.
  3. Returns the SNS dapp canister(s) to their fallback controllers.

This means that the Modclub SNS launch failed, and control over the dapp has been returned to the developers. One can observe that via the IC Dashboard: SNS DAO: Modclub - ICP Dashboard.

Why should a rejected proposal abort an SNS?

In normal conditions, when there is only a single OpenSnsTokenSwap proposal active, if the NNS votes to reject an OpenSnsTokenSwap proposal, this indicates that the conditions set out by the proposal do not meet the requirements to be a fully functional SNS, i.e. an SNS in normal mode. At the time of rejection, the SNS canisters have already been deployed and dapp canister(s) are already under control of the SNS canisters. An NNS proposal rejection then automatically triggers a return of assets and a setting of the Aborted state. This prevents SNSes, before they are decentralized, from using tokens and makes sure that developers do not lose access to their dapp(s). This mechanism is what set, for example, the SONIC SNS to the Aborted state when their OpenSnsTokenSwap proposal was rejected.

Next Steps

  1. As a temporary measure, DFINITY has proposed to upgrade the NNS Governance canister to temporarily disable submission of OpenSnsTokenSwap proposals. The community should review, comment, and vote on this proposal.
  2. Concurrently, DFINITY is working on a fix to ensure that there can only be one OpenSnsSwap proposal at a time and will submit a new proposal as soon as the fix is verified and tested.
  3. DFINITY is working on fundamental improvements for launching SNSes. Soon, the whole process will be done via one proposal (not multiple), so that design will be simplified and some of these edge cases will be removed.
  4. We invite people to follow ModClub’s thread to learn what they plan next for their SNS Launch.

What does this mean?

Also do they have to submit SNS-W again?

Hi @DanielThurau

It would be great if the Dfinity SNS team could schedule a call with Modclub to clarify how we are to move forward and what support can be provided in light of these updates. It’s not clear to us what the next steps are here, and communication has been difficult throughout this process.

Modclub Team

1 Like

Hi @modclub team,

Firstly, we sincerely apologize for the disruption in the launch of your SNS due to the bug encountered. We fully understand the challenges this has created, and we are committed to collaborating with you to overcome them.

For our next steps, I suggest we divide the work into two main streams:

  1. Addressing and fixing the observed bug in the SNS proposal submission process. This issue is discussed in the context of this post and it is technically unrelated to you. Your submission simply helped to discover the issue.
  2. Discussing and determining the best approach for Modclub’s SNS re-submission. As you have suggested, let us arrange a call to solidify next actions.

Is SNS now paused? The whole process or projects can still drop proposals?

Opening the decentralization swap with the OpenSnsTokenSwap proposal is now paused, but will hopefully be re-enabled next week. Proposals to whitelist an principal and installing SNSes is still enabled.