Launching an Agora DAO
A step by step guide on how to launch an Agora DAO to govern an organization using Clarity.
Once an organization has been created, Admins are able to launch an Agora DAO to govern the organization.
Step 1: On the Admin page, click 'Launch DAO'
By filling out this simple online form, you are creating a Governor Contract from an audited template of smart contacts that will enforce your organizations governance rules.
Make sure to follow the instruction below carefully to ensure your smart contracts are deployed properly.
- 1.Policy ID: The 56-character hex-encoded Policy ID (currency symbol) of the Governance Token that will be used to determine voting power for this organization.
- 2.Name: The hex-encoded representation of the asset name of the Governance Token that is being used to determine voting power for this organization.
- 1.Execute: The number of Governance Tokens that must be staked behind votes for a proposal for it to execute.
- 1.Create: The number of Governance Tokens a member must hold in order to create a proposal.
- 2.Vote: The number of Governance Tokens a member must hold in order to vote on a proposal.
- 2.Vote Cool Down Period: The time period users cannot retract their vote after casting it.
- 3.Create Proposal Transaction Maximum Time Range: The maximum amount of time a transaction that creates a proposal remains valid before being submitted to the blockchain.
- 4.Vote Transaction maximum Time Range: The maximum amount of time a transaction that casts a vote on a proposal remains valid before being submitted to the blockchain. This ensures stake owners can unlock their stakes in a reasonable amount of time.
After you finalize the rules for your organization, click 'Submit', then read and agree to the terms. Shortly, the process of signing transactions to put your organization on-chain will begin.
Step 3: Governor Contract Deployment
In order to put your DAO on-chain, you will be prompted to sign a series of 8 transactions. In total, the transactions will cost approximately 120 ADA to complete. Each transaction puts a different aspect of your organization's governance rules on-chain. All fees are pooled and then distributed to all pools that created blocks during an epoch.
The process for building and signing the 8 transactions to put your organization on-chain takes about 15 minutes, so please be patient. We are working on making this faster to improve the user experience. Below are descriptions of what is being accomplished with each transaction.
Transaction 1: createAndWaitForInitialSpendcreateAndWaitForInitialSpend is used to create the UTxO which is then consumed when minting the unique governor state thread token. The governor policy ensures that this UTxO is spent during the mintGovernorST transaction.Transaction 2: GovernorPolicy scriptThe governor policy script is used to mint the governor state thread token, which will then be held at the address of the governor validator script, as a unique identifier.Transaction 3: Governor ValidatorThe governor validator script is used in a number of cases to ensure the validity of a particular transaction. For example, it is used during the proposal creation step to ensure that only one proposal state thread token is created, among other checks.Transaction 4: Proposal PolicyThe proposal policy is used to mint the proposal state thread token, which will be held at the address of the proposal validator script, as a unique identifier.Transaction 5: Proposal ValidatorThe proposal validator script is used to ensure the correctness of transactions during the proposal advancement phases. For example, if the user wishes to place a vote, the validator will ensure that we are within the voting time period and the status of the proposal datum is set to VotingReady, among other checksTransaction 6: Stake PolicyThe stake policy script is used to mint the stake state thread token, which will be held at the address of the stake validator script, as a unique identifier.Transaction 7: Stake ValidatorThe stake validator script is used to ensure the correctness of transactions involving a user's stake. For example, the stake validator will be used to ensure the validity of a transaction whereby the user wishes to use a stake to vote on a proposal or to retract a vote they have previously cast on a proposal.Transaction 8: mintGovernorSTmintGovernorST is an off-chain transaction used to mint the governor state thread token which will then be paid to the governor validator script. It uses the governorPolicy deployed in step one (to ensure valid minting) and is then paid to the governorValidator script deployed in step two of the bootstrap process. This is the final step during the bootstrap process.
Step 4: Check out your new DAO!
After you finish signing the transactions to launch your organizations, a congratulations is in order. You are one of the first people in the world to create a Decentralized Autonomous Organization.
- 1.The Policy ID of the token that governs your organization.
- 2.The Treasury address of your organization.
- 3.The Governor Contract address of your organization.
- 4.The Token Thresholds that govern your DAO.
- 5.The Proposal Timing Thresholds that govern your DAO's proposal process.