Long Term R&D: Dapp governance (SNS) (proposal)

1. Summary

This is a motion proposal for the long-term R&D of the DFINITY Foundation, as part of the follow-up to this post: Motion Proposals on Long Term R&D Plans (Please read this post for context).

This project’s objective

Tokenization enables powerful incentive systems that set dapps apart from traditional applications. A tokenized dapp allows anyone in the world to purchase tokens and thereby contribute to the dapp’s funding. Moreover, tokens can be paid to early adopters and active users, which will help to attract more users. By giving voting rights to users who have (locked) tokens, open and decentralized governance is established. With this project, we plan to realize and extend the currently planned Service Nervous System (SNS) work and to create all the building blocks that allow dapp developers to operate a decentralized and open governance system

2. Discussion lead

Lara Schmid

3. How this R&D proposal is different from previous types

Previous motion proposals have revolved around specific features and tended to have clear, finite goals that are delivered and completed. They tended to be measured in days, weeks, or months.

These motion proposals are different and are defining the long-term plan that the foundation will use, e.g., for hiring and organizational build-out. They have the following traits and patterns:

  1. Their scope is years, not weeks or months as in previous NNS motions
  2. They have a broad direction but are active areas of R&D so they do not have an obvious line of execution.
  3. They involve deep research in cryptography, networking, distributed systems, language, virtual machines, operating systems.
  4. They are meant to match the strengths of where the DFINITY foundation’s expertise is best suited.
  5. Work on these proposals will not start immediately.
  6. There will be many follow-up discussions and proposals on each topic when work is underway and smaller milestones and tasks get defined.

An example may be the R&D for “Scalability” where there will be a team investigating and improving the scalability of the IC at various stages. Different bottlenecks will surface and different goals will be met.

3. How this R&D proposal is similar to what we have seen

We want to double down on the behaviors we think have worked well. These include:

  1. Publicly identifying owners of subject areas to engage and discuss their thinking with the community
  2. Providing periodic updates to the community as things evolve, milestones reached, proposals are needed, etc…
  3. Presenting more and more R&D thinking early and openly.

This has worked well for the last 6 months so we want to repeat this pattern.

4. Next Steps

Developer forum intro posted
1-pager from the discussion lead posted
NNS Motion proposal submitted

5. What we are asking the community

  • Ask questions
  • Read 1-pager
  • Give feedback
  • Vote on the motion proposal

Frankly, we do not expect many nitty-gritty details because these are meant to address projects that go on for long time horizons.

The DFINITY foundation’s only goal is to improve the adoption of the IC so we want to sanity-check the projects we see necessary for growing the IC by having you (the ICP community) tell us what you all think of these active R&D threads we have.

6. What this means for the existing Roadmap or Projects

In terms of the current roadmap and proposals executed, those are still being worked on and have priority.

An intellectually honest way to look at this long-term R&D project is to see them as the upstream or “primordial soup” from which more baked projects emerge from. With this lens, these proposals are akin to asking, “what kind of specialties or strengths do we want to make sure DFINITY foundation has built up?”

Most (if not all) projects that the DFINITY foundation has executed or is executing are borne from long-running R&D threads. Even when community feedback tells the foundation, “we need X” or “Y does not work”, it is typically the team with the most relevant R&D area that picks up the short-term feature or project.

1 Like

Please note:

Some folks gave asked if they should vote to “reject” any of the Long Term R&D projects as a way to signal prioritization. The answer is simple: “No, please, ACCEPT” :wink:

These long-term R&D projects are the DFINITY’s foundation’s thesis at R&D threads it should have across years (3 years is the number we sometimes use internally). We are asking the community to ACCEPT (pending 1-pager and more community feedback of course). Prioritization can come at a separate step.

1 Like

Hi everyone, :wave:t2:
I am Lara. I am a researcher working with the NNS and the security team and, as Diego mentioned, I will be the discussion lead for the above mentioned proposal.
I will post the 1-pager describing the proposal in the next days!


Hi all, happy to post the 1-pager. Looking forward to your feedback and questions!

Community Proposal: 3-year Plan Dapp Governance

## Objective

With this project, we plan to provide building blocks that allow dapp developers to operate decentralized and open governance systems and integrate them with their dapps.
Concretely, we plan to deliver such building blocks in multiple stages, such that the community can make use of intermediate deliverables while the systems can continuously be evolved and improved.

## Background & Why this is important

Currently, most dapps that are realized as canister smart contracts on the Internet Computer blockchain are either controlled by some developers or have no controller at all. Both situations are undesirable. In the case where a dapp is controlled by a centralized group of developers, users of the dapp must trust these developers not to stop the service or to upgrade the canister code with some undesirable behavior. In the case where the canister has no controller, it cannot be upgraded at all, even though this might be necessary, for example to fix security bugs or to add new features.

This problem can be solved by assigning an open governance system to a dapp, where anyone can participate. The open governance can then autonomously control the upgrades and changes of the dapp.

Apart from decentralization, another concern for dapp developers is tokenization. Tokenization enables the introduction of new incentive systems and use cases that have the potential to set apart dapps from traditional applications.
Tokenizing a dapp allows, for instance, that anyone in the world can purchase tokens and thereby contribute to initial funding for the dapp. Moreover, tokens can be paid to early adopters and active users, which will help attract users.

The full potential of these advantages can be unlocked by a tokenized open governance system, where tokens can be locked to participate in voting. Anyone with locked tokens, including the users that were rewarded with tokens, can submit and vote on governance proposals for the dapp. By participating in governance, developers, users, and other investors can collectively decide what new features should be implemented. As their tokens are locked, they will be incentivized to vote taking into consideration the future value of the tokens and the dapp.

Finally, projects could have access to even more funding by allowing the ICP utility tokens that are locked in Network Nervous System (NNS) neurons to be invested in the above mentioned open governance systems.

## Topics under this project

This project contains topics such as tokenization, open governance, dapp upgrades, and tokenomics.

## Key milestones

While the longer term milestones are still subject to research and community feedback (e.g., what is needed in 1 year), we see the following concrete milestones in the next few months:

  • The implementation of a ledger canister,
  • the implementation of an open governance canister,
  • support for operating the above canisters, such as upgrading and releasing them, and
  • frontend integration for these canisters.

Moreover, these are some possible medium term milestones, that have to be concretized based on the outputs of the first projects and community feedback:

  • An out of the box implementation of a tokenized, open governance system, called the Service Nervous System (SNS). Possible goals include the ability for a decentralized initial token distribution and a process for automated upgrades.
  • The realization of community funds in the NNS and their integration with SNSs such that locked ICP utility tokens can be invested in SNSs.

## Discussion leads

@lara @dralves @jwiegley

## Why the DFINITY Foundation should make this a long-running R&D project

Apart from the above mentioned motivation for this effort, some of the main reasons for making this a long-term R&D project are:

  • The project addresses a need from the community, as multiple dapp developers expressed interest in a solution for open governance.
  • Since tokenization allows dapps to set up new incentives systems, this effort may attract new developers to the Internet Computer, which is beneficial for the whole platform.

## Skills / Expertise necessary to accomplish this

  • Governance, tokens, financial integration: expertise in these areas will be key to develop the necessary canisters and how they interact with each other
  • Security: tokens & governance systems are highly security critical. Therefore, the expertise from security experts will be needed to prevent potential security issues.
  • Community / growth: the experience in interacting with the community will help in ensuring that we build and prioritize those open governance features that are important for the developers on the Internet Computer.

## Design & Research challenges

To deliver the above features we need to resolve several design and research challenges, including the following:

  1. Providing modularity and parametrization of the governance systems that can be integrated with the needs of different dapps, while also providing a concrete implementation that can be used immediately.
  2. Designing a release and upgrade process that enables users of open governance systems to verify which code the ledger, governance and other critical canisters are running so that they can trust these systems and invest in them. One main challenge will be to provide a verification path that is as usable as possible so that users that do not have a technical background can also gain this trust.
  3. Designing a release and upgrade process that is usable and possibly can be provided “as a service”.
  4. Understanding the economic implications arising from different ways of combining the ledger and governance canister.
  5. Designing the support for a decentralized initial token distribution.
  6. Understanding the economic and security implications of enabling the investment of stacked ICP utility tokens in SNS systems, such as ensuring that an SNSs cannot misuse the invested tokens and thereby negatively impact the value of the ICP utility tokens.
  7. Enable additional possibilities for funding and investments in open governance systems. For example, ensure the availability of decentralized exchanges and their integration with the SNSs and other ledger canisters.
  8. Understand how the open governance systems can be improved with insights from other projects, such as new tokenomics and other support for DeFi.
  9. Allow the open governance systems to interoperate with external inputs, such as exchange rates.
  10. Enable open governance systems to interoperate with and make use of new IC features such as the ETH and Bitcoin integrations.
  11. Further evolve the open governance systems’ functionality to adapt to the dapp users’ needs that will become clearer when the first open governance systems are used.

## Examples where community can integrate into project

The purpose of this project is to provide open governance canisters that can be integrated with a variety of dapps.

## What we are asking the community


  • Ask question & vote accept or reject on the NNS Motion proposal describing this project

During the course of the project:

  • Review proposals at different design stages, ask questions, give feedback

  • Provide input regarding what features and tools are needed to enable tokenized open governance services for the different dapps


I think DFINITY should also consider building and releasing the first SNS-operated dapp as a proof of concept.

Just like https://nns.ic0.app was a POC for Internet Identity, I think we should have one for SNS. This way, users and developers have a concrete thing they can play with to understand how this will actually work in practice. I doubt any serious project will give up control of their dapp to an untested system like the SNS without first seeing a working example.

Maybe the proposed People Parties dapp could be the first to use SNS? It’s rather experimental and will probably need a lot of iterations to get right, which could be a useful test of SNS governance.


I am very happy to see the technical strength of our community and the focused R&D in the future, but I want to know that there are already many good dapps on IC, waiting for SNS to be issued and run…SNS is the right way to change the long-term R&D strategy. But will there be a version that can launch these dapps in a few months?

Thanks for these suggestions!

We definitively plan to test the SNS work on some toy example dapps, e.g., testing that we can upgrade a generic dapp as expected as a result of a SNS governance proposal.
I am not sure whether we have a good candidate dapp to actually test this on the IC, but I happily take these ideas as input.
(Note that the idea is that each dapp and thus the governance system that governs it has its own “community” that decides on SNS proposals, namely the SNS neuron holders. Therefore, it would likely be more representative to test these things out on actual communities that already exist on the IC.)


Thanks for this question.
In order to provide the first useful building blocks to the community as soon as possible, we have brocken down the original SNS project into multiple smaller ones, as laid out above.
Different teams have started working on the ledger canister and the governance canister already.


Proposal is live: Internet Computer Network Status