DAO stands for Decentralized Autonomous Organization. Simply put, a DAO is an organization formed by smart contracts where the members (typically token holders) collectively decide how the organization or the product evolves. Example scenarios:
10'000 token holders each deposit crypto into a smart contract and vote on what to purchase with the total.
1 million token holders control a decentralized version of Twitter where token holders propose and vote on feature updates.
A DAO can take the role of carrying out community-driven decisions on when and how to update the code that shapes the organization or product.
SNS stands for Service Nervous System. An SNS is a powerful form of DAO that allows communities to govern smart contracts and decentralized apps (dapps) running on the Internet Computer (ICP) completely on chain. Main things to note about SNS:
A dapp controlled by an SNS DAO is governed by SNS token holders submitting and voting on on-chain proposals. No one developer or group of people controls the dapp, rather the dapp is controlled by voting via tokens.
There can be many SNSs on ICP. Any developer can hand over the control of their dapp to an SNS DAO. Doing so gives control to DAO token holders.
DAOs are a growing form of organization for accomplishing goals. For example, in the ETH ecosystem, Uniswap and MakerDAO are popular DAOs with billions of dollars locked in their respective smart contracts. However, ICP is unique in that it can host fully-on chain dapps (frontend, backend application logic, and data), so SNS DAOs are unique in that they can fully control (via voting) every aspect of a dapp, since everything is on-chain. Having fully on-chain DAOs is important because it enables all decisions to be executed on the blockchain. This is in contrast to existing DAOs on other blockchains where voting takes place on-chain but the execution of the results are often carried out by developers off-chain. This facilitates true decentralization.
Therefore, SNS DAOs serve as a vehicle to deliver fully decentralized online services that are owned and governed by their communities.
SNS-1 is the first SNS DAO that DFINITY launched on the mainnet to test an SNS decentralization swap with involvement of the ICP community. The SNS-1 test exposed areas of improvement, which are currently being addressed. The SNS-1 dapp is now controlled by the community of token holders who will collectively determine its future. Since SNS-1 was meant as a test, it is unusual among SNSs in that it was launched as a blank canvas without a product or developer team. Future SNSs will likely be derived from established ICP dapps. SNS-1 tokens are available on ICDex.
The ICP community has expressed much interest and enthusiasm for the launch of the SNS technology. OpenChat was the first dapp that handed control over to an SNS DAO announced their plans to turn their dapp into an SNS DAO in Q1 of 2023. Dapps such as Sonic, Hot or Not, Kinic, distrikt, Catalyze, Canistore and Nuance are considering creating their own SNSs.
The most important thing you can do as an SNS DAO member is to participate in governance. On-chain governance is what differentiates DAOs from traditional web applications, as members play a key role in the DAO's success. DAO members can contribute in many ways, from pushing code, to designing a logo or a UI, to simply voting on SNS proposals that shape how the dapp evolves.
There are many ways members can participate in an SNS DAO, both on-chain and off-chain. Creating proposals requires coding skills. Some examples include:
Vote on SNS proposals: You can vote on different types of proposals manually or follow other neurons that vote.
Create upgrade proposals: Submit an upgrade proposal to update the code of the dapp that the SNS DAO controls. This allows anyone to contribute code to an SNS DAO.
Upgrade the asset canister: Currently updates to asset canisters don't go through proposals. However, you can still make changes to the frontend by upgrading the asset canister controlled by an SNS DAO. To do so, you have to first create a proposal to add your principal ID to the list of controllers who can make updates.
Create motion proposals: Motion proposals don't upgrade the code of the dapp, instead they steer the direction of the DAO in terms of new features and dapp development.
Create SNS parameter update proposals: You can propose upgrades for many of the DAO's parameters such as maximum staking period, voting rewards and many more. See parameters.
Non-governance related examples of contributing are:
Content moderation: Many social media dapps may incorporate content moderation as they scale to millions of users. Moderators review and approve content based on the content policies of the DAO.
UI / UX design work: Users can contribute not only by coding, but designing different aspects of the dapp.
Off-chain marketing / inviting friends: Members of the DAO can be advocates of the dapp and promote it in different ways.
Once you have acquired SNS tokens, you can lock them into SNS neurons and create a proposal or vote on one. If a proposal gets adopted, the code of the SNS DAO or the dapp it controls is upgraded. Depending on the SNS configuration, users who vote may be rewarded with additional tokens for participating in governance. If you want to get more deeply involved, you can also suggest feature updates through proposals to improve the dapp controlled by the DAO.
Each SNS DAO will have its own unique SNS token. For example, OpenChat will have CHAT tokens when they turn their dapp into an SNS DAO.
There are three main ways of acquiring SNS tokens:
Participate in a decentralization swap: When an SNS launches, it has to go through a decentralization swap. You can participate on the NNS frontend dapp under the Launch Pad tab. During the swap you can buy SNS tokens with ICP.
Purchase tokens on a decentralized exchange (DEX): After a decentralization swap has concluded, liquid tokens will typically be listed on multiple DEXs, where you can buy them using the ICP utility token or other tokens, depending on what token pairs the DEX lists, e.g., also Bitcoin or Ethereum. An SNS token in high demand may have a higher price on a DEX than in its decentralization swap. ICDex already supports SNS tokens.
Airdrops: Besides buying SNS tokens, you can obtain them by receiving airdrops or by engaging with the dapp and thereby earning tokens as reward. In this scenario, tokens are used as an incentive to encourage active engagement with the dapp which helps grow the active user base. Finally, if you already have tokens and participate in governance, you can earn tokens as voting rewards as you would in the NNS.
Do I get rewards for participating in governance?#
SNS works very similar to the NNS, however each SNS DAO can configure their parameters differently. Once you have locked your SNS governance tokens into SNS neurons for at least the minimum required time, you can participate in voting. Depending on the configuration voting may reward participants with SNS governance tokens.
From the ICP ecosystem's vantage point, the Community Fund aids in bootstrapping the SNS DAO ecosystem, and re-invests in the continued growth of the ecosystem. The Community Fund itself is controlled by a DAO (the NNS).
From a user's vantage point, the Community Fund is a way for people who stake ICP in the NNS to use their maturity to fund future SNSs, which results in higher diversification. As the NNS decides how the Community Fund is distributed, those participating in it can leverage the broader community's "wisdom of crowds" to decide which SNS tokens to acquire.
ICP neuron holders can opt in or out of the Community Fund at any moment. Neurons will only participate in the decentralization swap if they are opted in at the moment when the proposal to initiate the decentralization swap executes. The propsoal executes right after it gets adopted by ICP neuron holders.
If I am asked to send ICP to an address to participate in a decentralization swap, what should I do?#
If you want to participate in the swap, do not send ICP directly to addresses! An SNS swap will never initiate contact with you, e.g. via chat or email. You will never be asked to manually enter an ICP address to participate in a decentralization swap. If you find yourself entering an ICP address to participate in an SNS swap, then STOP. Your swap address is specific to your identity, and you should only interact with that address when participating in a swap through the NNS or other ICP based dapps that support the swap like ICLighthouse.
A decentralization swap is the process by which an SNS DAO becomes decentralized and where users can purchase SNS tokens by participating. After the swap, each participant receives a basket of neurons. These neurons hold SNS tokens and therefore a share of the DAO's voting power. It is one of multiple ways you can get SNS tokens for a particular SNS DAO.
A decentralization swap is run entirely on chain. The swap is initiated by the NNS. Through this approach, every aspect of the swap, from its initiation to execution, is completely decentralized and not controlled by any centralized entity. Even the decision to create the SNS and its token is made by the NNS (a DAO) and not the developer in order to avoid undesirable legal implications for the developer who wants to decentralize their app.
A decentralization swap follows a list of configurable parameters:
The amount of SNS tokens to be sold
The amount of ICP a decentralization swap must receive to be successful. If the goal is not reached, participants get their ICP refunded and the swap fails.
The maximum amount of ICP a decentralization swap can receive before it concludes. If the maximum ICP is reached, the swap is over and the control of the dapp is turned over to the token holders. As the number of tokens to be sold is fixed, it is amount of ICP raised that determines the initial price of the SNS tokens.
Minimum and maximum commitment of ICP per participant
If the decentralization swap is successful, you will receive a basket of neurons that hold your SNS tokens. Depending on the SNS configuration, the basket may contain multiple neurons, each with a different dissolve delay. You can use your tokens to participate in governance or, once neurons have dissolved, sell the liquid tokens on an exchange.
The number of SNS tokens you receive, and the price paid for each token, depends on the amount of ICP raised during the swap. The more ICP raised, the fewer SNS tokens you receive, however their price will be higher.
SNS tokens can be exchanged for ICP during the decentralization swap. There is a fixed number of tokens distributed during the swap, which means their price is determined by the amount of ICP raised. You can calculate the token price by dividing the amount of ICP raised with the number of tokens sold. Price = ICP raised / number of tokens sold. Note that the final price of SNS tokens isn't known at the time of the decentralization swap, as it is dependent on the total amount of ICP raised in the swap. However, you can calculate the minimum and maximum price based on the minimum and maximum ICP that the swap accepts, which you can verify in the swap proposal. A few examples:
The decentralization swap raised 1000 ICP by selling 5000 tokens. You contributed with 10 ICP. This means you will have 50 SNS tokens, each worth 0.2 ICP.
The decentralization swap raised 500,000 ICP by selling 1 million tokens. You contributed with 200 ICP. This means you will have 400 SNS tokens, each worth 0.5 ICP.
The decentralization swap raised 10,000 ICP by selling 100 tokens. You contributed with 5 ICP. This means you will have 0.05 SNS tokens, where a full token would be worth 100 ICP.
You can participate in the decentralization swap in the NNS frontend dapp, which requires ICP utility tokens. ICP tokens can be exchanged for SNS tokens during the decentralization swap. If you don’t have ICP, go to any of the exchanges listed on CoinMarketCap.
Follow these steps to participate in a decentralization swap:
1. Go to the NNS frontend dapp and click on the “Launch Pad” in the sidebar to see all ongoing SNS decentralization swap.
2. Select the SNS Swap you’re interested in under “Current Launches” and click on the box.
3. Click on “Participate”.
4. Type in the amount of ICP you want to participate with or click “max”, then click “Execute”.
5. You will be prompted to review your participation. If you see the correct amount of ICP, select the checkbox and click “Execute”.
6. On the last screen, you should see the amount of ICP you entered for participation. You can repeat this process if you wish to contribute more.
After the swap ends and is successful, you receive SNS tokens. Note, that this may take a few hours after the swap has concluded. The number of SNS tokens you receive, and the price paid for each token, depends on the amount of ICP raised during the swap as well as the amount of ICP spent. The more ICP raised, the fewer SNS tokens you receive.
If the set goals of the decentralization swap are not reached, participants will be refunded. The duration of a swap is configurable and thus, depends on the configuration of each individual SNS. A swap can only start after a 4 to 8-day NNS voting period (unless 51% majority is reached sooner) on the original proposal that initiates the launch the SNS.
The developer team first creates an NNS proposal for the decentralization swap. The swap itself starts automatically once the NNS proposal is adopted.
As a participant in the SNS decentralization swap, what do I need to trust?#
Before participating in an SNS decentralization swap to get a share of the SNS DAO’s voting power, it is highly recommended that you do your due diligence on the dapp in question to make sure the SNS DAO is trustworthy. Dapp developers are responsible for providing all the necessary information that allows you to verify the dapp and its SNS configurations. Note that in participating without doing due your diligence, you are implicitly trusting the NNS community and the developers decentralizing the dapp. In any case, it is crucial that you trust the developers will not change the dapp during the SNS launch. Learn what you could verify and what to look out for on the ICP Wiki.
How can I verify the SNS decentralization swap proposal?#
There are multiple levels of verification you can do depending on your level of technical understanding. SNS canisters can be verified at any time, even before the decentralization swap, but after they have been installed on the SNS subnet. Here are some ways to verify:
Swap parameters: You can verify what the parameters of the decentralization swap are in the Launch Pad or in the decentralization swap NNS proposal.
SNS root canister: An SNS DAO is comprised of several SNS canisters that have different functions. The root canister is the canister that controls the other SNS canisters within a given SNS DAO. You should verify that the SNS root canister is the only canister controlling other SNS canisters within that SNS DAO. Verification is important for making sure there no backdoors built in.
The dapp canister: You can verify that the canister id of the dapp controlled by the SNS DAO is the same as the one you're interacting with.
Voting and the creation of SNS proposals can take place in the dapp controlled by the SNS DAO, and soon in the NNS frontend dapp, Proposals are listed within the dapps themselves as in this example of OpenChat:
Is it possible to transfer SNS tokens to another person?#
Yes. SNS tokens are ICRC-1 tokens and can be transferred between any Internet Computer-based wallets that support ICRC-1, including your NNS wallet. Note that each SNS has its own ICRC-1-compliant ledger for keeping track of its tokens.
When receiving your SNS tokens in the form of neurons, the neurons may have dissolve delays, meaning your tokens may not be liquid, i.e. transferable immediately. Rather these tokens become liquid (transferable) in weeks, months, or years’ time, depending on the dissolve delay of the respective neuron.
Is it possible to sell SNS tokens to another person?#
Yes. Because tokens can be sent to other people, they can likewise be sent to exchanges and thus, swapped for other tokens. The easiest way to sell SNS tokens is through a decentralized exchange (DEX) that lists the token. You can exchange SNS tokens for other tokens, depending on the token pairs available on any DEX.
Likewise, you can acquire SNS tokens on a DEX in exchange for other tokens.