Using the IC
Introduction to the Service Nervous System (SNS)
Learn more about the Service Nervous System that helps developers to launch token-based governance systems for their decentralized applications
Introducing the Service Nervous System (SNS)
Understanding what the SNS is and how it is used for dApp-based governance
The Service Nervous System (SNS) has been introduced to the Internet Computer ecosystem to empower dApp developers and entrepreneurs to introduce tokenized, decentralized governance systems for applications.
Similar to the Network Nervous System (NNS), an SNS is a tokenized governance system that will allow the users of an associated application to control the project in an open, permissionless, and fully decentralized manner.
With the help of an SNS, the users of the associated dApp can actively participate in the governance of the service, for example by submitting and voting on proposals. If the majority of the governance participants of a dApp are in favor of a given proposal, it will be automatically executed by the SNS of the associated dApp.
The SNS of a dApp will provide dApp developers with the tools to establish decentralized governance structures within the ecosystem. In doing so, entrepreneurs and developers can empower their communities to autonomously participate in controlling the operations, management, and evolution of the associated dApp.
Advantages of the SNS
Attracting resources
With the help of implementing an SNS, dApps running on the Internet Computer can attract resources, enabling the dApp to scale, develop features, and power the dApp with a sufficient amount of cycles. An SNS’s tokenized governance system can also enable entrepreneurs and developers to attract new users to their dApps and to utilize network effects, allowing the service to extend its reach.
Developers that adopt an SNS to implement a governance system in their ecosystem provide anyone the opportunity to acquire the dApp’s native SNS governance token and to participate in its decentralized governance. The SNS governance tokens of a dApp could be exchanged for cycles but also to fund the development or expansion of the service. An SNS can also be used to distribute the dApp’s native SNS tokens to early participants and users to drive growth and to let them participate in the success of the service.
Aligning interests
In the case of the Internet Computer’s NNS, ecosystem members need to stake their ICP tokens in a neuron to participate in governance. Similarly, voting in the governance of a given dApp is possible by staking the dApp’s SNS tokens by locking them in a neuron. This allows dApps to stabilize their governance and to incentivize their users to act in the ecosystem’s best long-term interest.
Decentralized controlling mechanisms
With the help of an SNS and the open governance model it provides, users can ensure that the dApp’s services are not being removed, stopped, or censored by centralized authorities. It also ensures that the code of the dApp cannot be updated in a way that is undesirable to its ecosystem participants.
Permissionless governance
By locking the dApp’s native SNS tokens in a neuron, community members of a dApp can actively participate in the process of shaping the future of the service through actively submitting proposals and by voting on governance proposals. As such, the ecosystem of a dApp is given a tool to articulate wishes or feedback via proposals and to open these up for voting by the community.
The permissionless governance system provided by an SNS helps all the stakeholders of a dApp – ranging from its developers, community members, users, and investors – to collectively decide which features to implement and what proposals to reject.
Differentiating between the NNS and the SNS
The purpose of the Network Nervous System (NNS) is to control the Internet Computer via permissionless governance.
Every dApp and service running on the Internet Computer can launch an SNS to introduce permissionless governance to its ecosystem. Developers can utilize the NNS to create an SNS out-of-the-box and to seamlessly distribute the dApp’s native SNS governance tokens. There is no special developer-side effort required for creating and updating an SNS that governs their dApps.
As a result, the NNS and all SNSs have a shared implementation, providing a de facto standard and ensuring that code changes or upgrades are approved through governance votes of the Internet Computer community.
SNS contents
An SNS is structured similarly to the NNS and includes both a ledger and a governance canister. The SNS’s utility token accounts, as well as transactions, are stored in the ledger canister. Voting neurons consisting of staked tokens and proposals are stored in the governance canister.
While a dApp’s SNS is upgraded by the NNS, there are some parameters of an SNS that can be changed through governance. This includes changes to the voting period of proposals as well as the governance fees, etc.
Initializing an SNS
The process of initializing an SNS for a given dApp is seamless and does not involve a special effort from developers:
The process of assigning an SNS to a dApp looks as follows:
Once step #3 is successfully fulfilled, the developers no longer have control over the dApp. Instead, the SNS is now in full control and can be governed by the dApp’s SNS governance token holders.
SNS Sample Distribution
The NNS will initially distribute 1 billion governance tokens to the SNS of a given dApp. A sample distribution could look as follows:
- dApp developers: 25% of the tokens
- SNS-controlled account: 35% of the supply, can be used via SNS proposals
- Public distribution: 40%, distribution via open, permissionless auction
Sample distribution
SNS Tokens