Description
Prerequisites
The incorporation feature will provide an important solution to a lot of DAO projects, allowing them to create a legal wrapper around the DAO. This would enable the DAO to operate in a legal capacity and help to protect it's contributors. This is an important feature to include within Colony as the governance mechanisms are useful as a decentralized way in which to first create the legal wrapper and then to also decide what is required to be ratified by the legal wrapper.
Description
In order to implement this feature, it is necessary to create an extension to help facilitate the staking requirement. The intention of the staking requirement is a means of spam reduction and protection for the Colony, deterring non-serious applications and allowing a mechanism to punish those that start the incorporation process as a bad actor.
The process itself should allow collective input on the application, however, the staker will remain the owner of the application given their stake. Once consensus has been achieved, the owner can create a motion to fund the application. Once funded, the application will be sent for processing.
Acceptance Criteria
- Allow a user to stake in order to be able to start the incorporation process.
- The required stake amount should be derived using the same calculation as motions do, i.e. using reputation in the root domain.
- The user who stakes will be the owner of the application
- With the root or administration permissions, the user can skip the staking requirement.
- The owner should be able to edit the details of the application at any time.
- Anyone else can make change requests to the application, but changes will require a motion.
- I'm wary that this likely requires the details of the application to be stored on chain, although in a general sense, I don't feel it is necessary to store the application details on chain in order for a motion to be able to update details.
- I'm happy to consider other ways of approaching this. If it proves unsuitable we may be able to consider limiting changing the application details to the owner only.
- The owner can trigger a motion to make the payment at any time.
- Be able to cancel a staked application with a motion.
- For a cancelled application, be able to decide if the owner should be penalised or not.
[EDIT] This has been overlooked, but is a required for full acceptance.
- We need to be able to release the stake on completion of the application.
- Needs to be it's own address used specifically for this action without needing a Motion.
- We need to ability for the incorporation agency to be able to cancel applications.
- The default for this would be to not punish.
- Needs to be it's own address used specifically for this action without needing a Motion.
- We need to be able to toggle between a locked and unlocked state to there is not a race condition and applications cannot be changed after they have been submitted, but need to be returned to an unlocked state to allow updates that are required after feedback from the registration agent.
- Needs to be it's own address used specifically for this action without needing a Motion.
- There needs to be a way to be able to attach the payment of the application made through a Motion to the specific application.