Skip to main content

SNS testing before launch

Advanced
Governance
Concept

Before SNS creation, it is advisable to thoroughly test the process.

Testing on a local machine

Developers can test on a local machine. The sns-testing repository contains scripts that help developers test the SNS creation process. They can deploy the dapp in a local canister development environment and run through the stages of decentralizing their dapp.

The main intent of the sns-testing repo is for a developer to test the actual process of decentralizing their dapp.

Among other things, developers can use the sns-testing repo to:

  • Initiate proposals.
  • Pass proposals.
  • Start decentralization swaps.
  • Upgrade the dapp via DAO voting.

sns-testing is just one form of testing the SNS process locally. Developers should feel free to use others, fork/modify sns-testing, or create their own.

Testing on the mainnet

Once a developer has tested the process of an SNS, it is highly recommended they do an "SNS testflight" on mainnet. An SNS test flight is when a developer deploys their dapp (to the mainnet) and hands control of it to a mock SNS (on the mainnet).

The main intent of performing an SNS test flight is for developers to experience how a dapp works after it has been decentralized, so developers can make sure their dapp is ready for decentralization. It does not test the actual process of decentralizing it.

A test flight is not a repository or a set of tools but an activity (deploying a dapp and handing control of it to a mock SNS), so the instructions for testing on mainnet utilize various tools, but developers can of course use any tools they wish.

Among other things, here are some examples of issues developers find when running an SNS test flight:

  • They need a better pipeline for creating proposals to update a dapp.
  • They may have decentralized prematurely and need to fix some things.
  • They may need better monitoring before decentralizing.

The mock SNS used in an SNS test flight gives developers the ability to see what the post-decentralization lifecycle of a dapp looks like but still provides a way for a developer to keep control of their dapp. Therefore, developers are encouraged to run and perform an SNS test flight on the mainnet, potentially for multiple days or weeks, to ensure that all aspects have been covered.