Difference between revisions of "How to get a DAO on the IC"

From Internet Computer Wiki
Jump to: navigation, search
(Replaced content with "Please see [https://internetcomputer.org/docs/current/developer-docs/daos/sns/ DAO SNS Developer docs]")
Tag: Replaced
 
Line 1: Line 1:
There are at least the following options on how to get and maintain a DAO for your dapp.
+
Please see [https://internetcomputer.org/docs/current/developer-docs/daos/sns/ DAO SNS Developer docs]
 
 
== Get an SNS  ==
 
You can ask the NNS to create a [[Service Nervous System (SNS)]], which is a DAO provided as a ''system functionality'' by the IC.
 
 
 
An SNS is realized by a set of [[canister smart contracts]]. Deploying and maintaining them is not a simple task. If one of the SNS canisters is upgraded, it has to be guaranteed that the new version of this canister is still compatible with the other SNS canisters. Moreover, not all canister versions can be upgraded to all other canister versions without breaking some functionality, e.g., due to incompatibility during state migration.
 
 
 
To help them with these challenges, projects can choose an SNS which is a DAO that is automatically maintained by the IC. This means that upgrades from one deployment to another deployment are provided, thoroughly tested, and then approved by the ICP community (through NNS proposals). All the SNS communities have to do is to decide (by SNS proposal) that the SNS canisters should be upgraded according to the pre-approved upgrade path. This will automatically fetch the right canister versions that have previously been approved and upgrade the SNS canisters to them. SNS communities can nevertheless customise their SNS by choosing a variety of parameters.
 
 
 
SNS DAOs are hosted on an ''SNS subnet'' that exclusively hosts blessed SNSs. This simplifies the verification for end users who can simply [https://wiki.internetcomputer.org/wiki/SNS_decentralization_sale_trust#Verify_the_SNS_canisters_before_investing verify that an SNS is running on the SNS subnet] and infer that the canisters run blessed versions rather than possibly altered code.
 
 
 
== Self-deploy a DAO by reusing the publicly available SNS code ==
 
You can self-deploy the SNS code and manually upgrade and maintain your DAO.
 
 
 
Any DAO community can choose to deploy the SNS code, which is open source and available [https://github.com/dfinity/ic/tree/master/rs/sns here], on an application subnet. They can then choose to follow the pre-approved upgrade path or deviate from this path, e.g., leaving out some versions, or even modify the canisters’ code in a completely different way. In this option, canister upgrades require more actions of the SNS community (i.e., compiling new wasms and making upgrade proposals) and the SNS community has to ensure that the upgrades are secure. This includes ensuring that alternative canister versions are compatible and that upgrades to newer versions do not break any functionality.
 
 
 
== Build your own DAO or use other DAO frameworks ==
 
While this is conceptually similar to the second option, it's important to note that there are other designs than the SNS that also build a DAO. For most of these, the implications for the communities will be similar to the second option: The DAO communities will have to maintain the DAO versions, or trust a third party to do so and such DAOs can be deployed on a higher-replication application subnet.
 
 
 
 
 
== Conclusion==
 
These possibilities allow communities to choose between using DAOs that are provided as a service by the IC, where maintenance is as automated as possible, and DAOs that have full flexibility of how they can evolve. If you are a developer and want to learn more about how to get an SNS and how to prepare for it, you can find more resources in the [https://internetcomputer.org/docs/current/developer-docs/integrations/sns/ developer documentation].
 

Latest revision as of 21:16, 8 March 2024