🗳️Governance Process

[WIP] This page describes the formal processes of governance followed by the ANS DAO

This page is being updated as further details are finalized and its content is expected to change.

The ANS DAO takes action through onchain voting mechanism facilitated by the ANS DAO smart contract. ANS users can put forth a proposal describing a call to action from ANS DAO and this document describes the process of developing and advancing ANS governance proposals.

Voting parameters

NOTE: These parameters are based on the proposed total supply of 200M ANS (not yet finalized) with all tokens minted and in supply during token launch and 12.5% of the total supply to be distributed to the general community in the initial phase. Token launch and DAO launch are expected to happen around the same time and these parameters are subject to change before the DAO launch (based on community feedback and comments) and/or after the DAO launch through governance smart contract update.

  • deposit2M $ANS (1% of total supply) — deposit amount in $ANS required to call a vote on an initiated proposal

  • min_support — 10M $ANS — a minimum number of tokens with yes votes (other votes like abstain and no are not counted) to pass the proposal

  • min_duration7 days — minimum voting time (in number of seconds) for a new proposal

  • max_duration10 days — maximum voting time (in number of seconds) for a new proposal

  • cooldown_period — 2 days — gap between proposal passing and execution

Proposals

There are four main categories of proposals:

  1. Social: This type of proposal calls for an action off-chain that can be executed by the team of directors. This type of proposal does not mobilize any funds from the treasury nor does it make a change to the registry smart contract.

    The social proposal requires the following basic parameters that are common to all proposals:

    • duration (in number of days): to determine the duration of the vote

    • Proposal URL: GitHub discussions URL to the proposal

    Upon completion of the vote, a social proposal does not perform any action. The vote results are recorded for posterity and the staked tokens are returned to the owner.

  2. Funding: This type of proposal mobilizes funds from the treasury.

    The following additional input parameters are required:

    • recipient's address (Algorand account in string format): Valid Algorand address of the recipient

    • amount of ALGOs (number of $ALGO requested): Amount requested in ALGOs

    • amount of ANS (number of $ANS requested): Amount requested in ANS tokens

    The following conditions apply:

    • Only 20% of registry treasury ($ALGO) can be requested at once

    • Only 20% of ANS token treasury ($ANS) can be requested at once

    This proposal will perform the following additional actions if it passes:

    • Withdraw ALGOs from the registry treasury and deposit them into the recipient's address

    • Deposit ANS tokens from DAO treasury into the recipient's address

  3. Update Registry: This type of proposal calls for a change in the registry smart contract or for action from the current directors. This type of proposal does NOT mobilize funds.

    The following additional parameters are required for the Update Registry proposal:

    • registry's app id (integer): Must be valid APP_ID of the name registry

    • approval program (bytecode): registry's updated approval program

    • clear program (bytecode): registry's updated clear program

    • app_args (string list): the application arguments corresponding to the approval program and registry's update method

    This proposal will initially record the program hashes of approval and clear state programs. Upon successful vote passing, the subsequent action to "check results" will prepare and execute InnerTransactions that call the registry smart contract's update method.

  4. Update Gov Contract: This type of proposal calls for a change in the governance processes or parameters. This type of proposal does NOT mobilize funds but updates the DAO smart contract with the modified voting parameters or processes. The following additional parameters are required for the Update Gov Contract proposal:

    • approval program (bytecode): DAO smart contract's updated approval program

    • clear program (bytecode): DAO smart contract's updated clear program

    • app_args (string list): the application arguments corresponding to the DAO smart contract's approval program

    NOTE: The minimum quorum required to pass an update gov contract is 20M $ANS (10% of total supply) and is higher than other proposals for security purposes. This proposal will record the hashes for the approval program and clear state program.

Workflow

This section describes a general workflow for getting things done.

The governance process can be broken down into the following simple steps:

  1. Draft a proposal. For maximum success, please follow the proposal template below.

  2. Create a GitHub discussions topic here following the proposal template and gather feedback

  3. Initiate a proposal with desired parameterss and share the news with the community

  4. Wait for the proposal period to end and initiate the "Check Results" action

  5. Work hard. Share progress reports if you've been funded for a project. Return to add your next proposal and participate in voting on other proposals.

Proposal template

Proposal Number : (Proposal type) Proposal title

The title of the proposal is prefixed with a proposal number separated by a colon. The proposal number and the colon are followed by the type of the proposal in paranthesis. Proposal numbers must be unique and are recommended to be in an incrementing (by one) series. A short paragraph providing a brief overview of the proposal helps inform the readers of what to expect from the proposal.

Objective

Proposals are calls to action from the ANS DAO constituents. In the case of a social proposal, the proposer(s) may identify an issue or a problem and propose a change (in organization, administration, or branding) as the objective. In the case of a funding proposal, the proposer(s) may identify an appealing feature to add or a project to support and can include how this new feature, product, or partnership may benefit the ANS and Algorand community as the objective. In the case of the update registry or update gov contract proposal, the proposer(s) may identify how the updates are beneficial to the ANS DAO community as the objective.

Description

Here, the proposer(s) describe the proposal in detail. If the proposal is calling for a change, the description may include before/after comparison and further details about the requested change. In the case of a funding proposal, the description can include Work Statement and timeline with milestones and deliverables. In the case of an update registry or update gov contract proposal, the description must include the link to a diff of code and can highlight how the changes impact the general workflow (if applicable) or other ANS User Experience or community activities.

Principal Investigator (PI) (Funding proposals only)

In the case of a funding proposal, the Principal Investigator acts as the point of contact and is responsible for sharing progress and updates. The .algo name of the PI is enough but any additional contact info such as Twitter handle or discord username is beneficial (but not necessary).

Last updated