diff --git a/docs/developer-docs/integrations/sns/launching/launch-steps-1proposal.md b/docs/developer-docs/integrations/sns/launching/launch-steps-1proposal.md index 794be61138..9640e9c99c 100644 --- a/docs/developer-docs/integrations/sns/launching/launch-steps-1proposal.md +++ b/docs/developer-docs/integrations/sns/launching/launch-steps-1proposal.md @@ -36,64 +36,50 @@ ls bazel-bin/rs/sns/cli/sns Typically, dapp developers choose initial parameters that will be used in subsequent proposals. -### 2. Dapp developers submit NNS proposal to create SNS +### 2. Submit NNS proposal to create SNS -Anyone who owns an eligible NNS neuron with enough stake can submit an NNS proposal to create an -SNS for a given dapp. +Anyone who owns an eligible NNS neuron with enough stake can submit an NNS +proposal to create an SNS for a given dapp. Of course it is crucial to set the right parameters in this proposal. You can also find an example how this command is used in the SNS local testing [here](https://github.com/dfinity/sns-testing/blob/main/propose_sns.sh). -To create such a proposal, a common path is to use `ic-admin` and run the following: -[TODO: update command] +To create such a proposal, a common path is to use `sns-cli` and run the following: ``` -ic-admin \ - --nns-url "${NETWORK_URL}" propose-to-open-sns-token-swap \ - --min-participants 3 \ - --min-icp-e8s 5000000000 \ - --max-icp-e8s 50000000000 \ - --min-participant-icp-e8s 100000000 \ - --max-participant-icp-e8s 20000000000 \ - --swap-due-timestamp-seconds "${DEADLINE}" \ - --sns-token-e8s 500000000000 \ - --target-swap-canister-id "${SNS_SWAP_ID}" \ - --community-fund-investment-e8s 5000000000 \ - --neuron-basket-count 3 \ - --neuron-basket-dissolve-delay-interval-seconds 31536000 \ - --proposal-title "Decentralize this SNS" \ - --summary "Decentralize this SNS" +dfx sns propose --network ic --neuron $NEURON_ID sns_init.yaml ``` -* One can substitute `NETWORK_URL` with `https://nns.ic0.app`. - ### 3. Dapp developers add NNS root as co-controller of dapp -[TODO: add command] +They can do so by running the following command: +``` +dfx sns prepare-canisters add-nns-root $CANISTER_ID +``` ### 4. The NNS proposal is decided Nothing technical for dapp developers to do. Community votes. -### 5. (Automatically) SNS-W deploys SNS canisters +### 5. (Automated) SNS-W deploys SNS canisters Nothing technical for dapp developers to do. This is triggered automatically as a result of an adopted proposal in Stage 4. -### 6. (Automatically) SNS-W sets SNS root as single controller of dapp +### 6. (Automated) SNS-W sets SNS root as sole controller of dapp Nothing technical for dapp developers to do. This is triggered automatically as a result of an adopted proposal in Stage 4. -### 7. (Automatically) SNS-W initializes SNS canisters according to settings from Step 1 +### 7. (Automated) SNS-W initializes SNS canisters according to settings from Step 1 Nothing technical for dapp developers to do. This is triggered automatically as a result of an adopted proposal in Stage 4. -### 8. (Automatically) SNS swap starts +### 8. (Automated) SNS swap starts Nothing technical for dapp developers to do. This is triggered automatically as a result of an adopted proposal in Stage 4. -### 9. (Automatically) SNS swap ends +### 9. (Automated) SNS swap ends Nothing technical for dapp developers to do. This is triggered automatically as a result of an adopted proposal in Stage 4. -### 10. (Automatically) SNS swap finalizes +### 10. (Automated) SNS swap finalizes Nothing technical for dapp developers to do. This is triggered automatically as a result of an adopted proposal in Stage 4. diff --git a/docs/developer-docs/integrations/sns/launching/launch-summary-1proposal.md b/docs/developer-docs/integrations/sns/launching/launch-summary-1proposal.md index 0a935d1dfa..f4d3296a4f 100644 --- a/docs/developer-docs/integrations/sns/launching/launch-summary-1proposal.md +++ b/docs/developer-docs/integrations/sns/launching/launch-summary-1proposal.md @@ -2,10 +2,10 @@ ## Overview -A crucial purpose of an SNS launch is to decentralize the control of an SNS and thereby -the dapp that the SNS governs. +A crucial purpose of an SNS launch is to decentralize the control of an SNS +and thereby of the dapp that the SNS governs. -Thereby, new tokens must be distributed to a large community to ensure +To achieve this, new tokens must be distributed to a large community to ensure proper decentralization of the voting power. There are of course many ways to do so. The SNS provides one simple way to achieve this: a developer can hand over their dapp @@ -76,7 +76,7 @@ The NNS community's approval is relevant in Stage 2. -### 2. Dapp developers submit NNS proposal to create SNS +### 2. Submit NNS proposal to create SNS This proposal presents all the initial parameters for the SNS as defined in the first Stage to the NNS community. @@ -221,9 +221,9 @@ This results in the following situation: -### 6. (Automatically) SNS-W sets SNS root as single controller of dapp +### 6. (Automatically) SNS-W sets SNS root as sole controller of dapp Once the SNS canisters are deployed, [SNS-W](../introduction/sns-architecture.md#SNS-W) -sets the SNS root as the single controller of the dapp canister(s). +sets the SNS root as the sole controller of the dapp canister(s). For technical reasons, the NNS root canister was added as the co-controller of the dapp in Stage 3. @@ -231,10 +231,12 @@ Therefore, the SNS-W orchestrates the necessary updates involving NNS root for making the appropriate changes. In detail, this includes two steps: -* First, SNS-W adds the newly created SNS root cansiter as the dapp canister(s) - controller and removes the original dapp developers - This is done via a call to NNS root who is the co-controller of the dapp cansiter(s) - and thus has the necessary permissions. +* First, SNS-W removes the original dapp developers from controlling the + dapp canister(s). + Next, SNS-W adds the newly created SNS root canister as the dapp canister(s) + controller. + This is done via a call to NNS root who is the co-controller of the dapp + canister(s) and thus has the necessary permissions. * If this transition worked successfully, SNS-W asks the NNS root canister to remove itself as controller. diff --git a/docs/developer-docs/integrations/sns/launching/launch-summary.md b/docs/developer-docs/integrations/sns/launching/launch-summary.md index 5a04d2835c..d6672d8e49 100644 --- a/docs/developer-docs/integrations/sns/launching/launch-summary.md +++ b/docs/developer-docs/integrations/sns/launching/launch-summary.md @@ -2,10 +2,10 @@ ## Overview -A crucial purpose of an SNS launch is to decentralize the control of an SNS and thereby of -the dapp that the SNS governs. +A crucial purpose of an SNS launch is to decentralize the control of an SNS +and thereby of the dapp that the SNS governs. -Thereby, new tokens must be distributed to a large community to ensure +To achieve this, new tokens must be distributed to a large community to ensure proper decentralization of the voting power. There are of course many ways to do so. The current SNS version provides one simple way to achieve this: a developer can hand @@ -19,7 +19,7 @@ We first explain the decentralization swap and then the stages for an SNS launch ### Decentralization swap The launch of each SNS includes a separate **decentralization swap canister** that -is owned and run by the IC. +is owned and run by the NNS. In more detail, it is controlled by the NNS root canister. * The swap canister is set up at the start with a defined amount of SNS tokens to be