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 0: Create an organization

Step 1: On the Admin page, click 'Launch DAO'

Step 2: Fill out the form to create a customized Governor Contract for the 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.

Governance

Governance Token

  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.

Need Help? See: Finding your Policy ID

  1. Name: The hex-encoded representation of the asset name of the Governance Token that is being used to determine voting power for this organization.

Need Help? See Finding your Asset Name

Proposal Thresholds

  1. Execute: The number of Governance Tokens that must be staked behind votes for a proposal for it to execute.

User Participation Thresholds

  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.

  3. Maximum Proposals Per Stake: The maximum number of proposals that can be submitted using a single Stake a DAO member holds.

Timing

It can be helpful to review the stages of a Proposal to understand what these parameters control for an Agora DAO.

Proposal Timing

  1. Draft Duration: The amount of time after a proposal is submitted that must pass until the proposal goes to a community-wide vote.

  2. Voting Duration: The amount of time proposals will spend in the voting stage.

  3. Locking Duration: The amount of time a passed proposal will spend locked before executing its effects.

Advanced Proposal Timing Options

  1. Execution Duration: The amount of time allotted for a proposal's effects to execute. If a proposal's effects don't execute within this time, the proposal will be considered failed.

  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: createAndWaitForInitialSpend

createAndWaitForInitialSpend 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 script

The 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 Validator

The 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 Policy

The 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 Validator

The 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 checks

Transaction 6: Stake Policy

The 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 Validator

The 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: mintGovernorST

mintGovernorST 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.

After the last transaction is submitted, the DAO is officially running on-chain. The DAO's Dashboard page now shows details about the smart contracts governing the DAO, including:

  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.

Last updated