Page tree
Skip to end of metadata
Go to start of metadata


NEEDS UPDATE TO MATCH 12.1 GOVERNANCE OBJECTS

You must vote at least three days before the superblock is created or else your vote won't count. The exact deadline is 1662 blocks before the superblock.

Dash's decentralized governance by blockchain (DDGB) is a novel voting and funding platform.

This document introduces and details best practices for using this system.


Overview

Introduction

DDGB consists of three components: Proposals, Votes, and Budgets.
Anyone can submit a Proposal for a small fee.
Shareholders (owners of network Masternodes) cast votes for or against proposals.
Approved Proposals become Budgets.
Budgets are paid directly from the blockchain.

Proposals

    • Proposals are a request to receive funds.
    • Proposals can be submitted by anyone for a fee of 5 dash. The proposal fee is destroyed on submission.
    • Proposals cannot be altered once submitted.

Votes

    • Votes are cast by Masternode owners.
    • Votes can be changed at any time.
    • Votes are counted approximately every 28.8 days. (16616 blocks)

Budgets

    • Budgets are proposals which receive 10% of the possible votes (currently about 410 out of 4100) more yes votes than no votes
    • Budgets can be nullified at any time if vote totals (cast or re-cast) fall below the approval threshold.
    • Budgets are processed (paid) in order of yes minus no votes. More popular budgets get payment priority.
    • Approximately 7500 dash (in 2016) are available for each budget cycle, declining by %7.1 per year.

Budget cycles

When preparing a proposal, be aware of when the next cycle will occur and plan accordingly.

It is recommended to choose your proposal payment start block at least one cycle in the future to allow time for discussion and gathering support and votes.

Budget cycle block heights and approximate dates

      498480 - Sun Jun 26 06:47:12 UTC 2016
515096 - Mon Jul 25 03:07:12 UTC 2016
531712 - Mon Aug 22 23:27:12 UTC 2016
548328 - Tue Sep 20 19:47:12 UTC 2016
564944 - Wed Oct 19 16:07:12 UTC 2016
581560 - Thu Nov 17 12:27:12 UTC 2016
598176 - Fri Dec 16 08:47:12 UTC 2016
614792 - Sat Jan 14 05:07:12 UTC 2017
631408 - Sun Feb 12 01:27:12 UTC 2017
648024 - Sun Mar 12 21:47:12 UTC 2017
664640 - Mon Apr 10 18:07:12 UTC 2017
681256 - Tue May 9 14:27:12 UTC 2017
697872 - Wed Jun 7 10:47:12 UTC 2017
714488 - Thu Jul 6 07:07:12 UTC 2017
731104 - Fri Aug 4 03:27:12 UTC 2017
747720 - Fri Sep 1 23:47:12 UTC 2017
764336 - Sat Sep 30 20:07:12 UTC 2017
780952 - Sun Oct 29 16:27:12 UTC 2017
      

Proposals

Preparation

    • Choose a proposal name
      • Proposal names are limited to 20 characters.
      • Choose a unique proposal name to to prevent voter confusion.
      • The currently active proposals can be found by running 'mnbudget show' in the debug window or by visiting https://www.dashwhale.org/budget
    • Choose your payment amount and cycle duration.
      • The payment amount is fixed. You cannot vary your payment across cycles.
      • For instance: request 100 dash for 6 cycles to receive a total of 600 dash.
    • Write your proposal webpage/forum post
      • Explain your project.
      • Introduce yourself. Include your qualifications, experience and contact information for questions.
      • Estimate and outline the project requirements, progress milestones, and deliverables.
        • Continued funding may depend on reaching your stated goals.
        • The more detail the better. This page is your marketing and sales pitch.
      • Justify your funding request
        • Explain how the funds will be used. Detail your expenses and profit.
    • Shorten your proposal webpage/forum post url
    • Select your funding cycle start block
      • Choose a block far enough in the future to allow time for your proposal to be discussed and gain support. 
      • Allow at least one cycle (calendar month) for most proposals.
      • Consider longer incubation periods for larger funding requests.
    • Generate and backup your funding address
      • create a new address using one of:
        • the wallet interface "file -> receiving addresses... -> New button"
        • the debug console command 'getnewaddress'
      • create a backup of this new private key using one of:
        • the wallet interface "file -> backup wallet"
          • save to different media (usb key or second hard drive) -- in case of primary hard drive failure
        • the debug console command 'dumpprivkey <payment address>'
          • the output of the above command is called a WIF (Wallet Import Format) and is an unprotected private key
          • possession of the WIF means possession of the funds -- protect it accordingly
            • carefully write it down or
            • store it in an encrypted container

Structure

The following information is required to create a proposal:

    • proposal-name -- a unique label, 20 characters or less
    • url -- a proposer-created webpage or forum post containing detailed proposal information
    • payment-count -- how many cycles the proposal is requesting payment
    • block-start -- the requested start of proposal payments
    • dash-address -- the address to receive proposal payments
    • monthly-payment-dash -- the requested payment amount

Persistence

    • Proposals become active one day after submission.
    • Proposals will remain visible on the network until they are either disapproved or the proposal's last payment-cycle is reached.
    • Approval occurs when yes votes minus no votes equals 10% or more of the total available votes.
    • Disapproval occurs when no votes minus yes votes equals 10% or more of the total available votes.
    • The total available votes is the count of online and responding masternodes and can be seen by running the command 'masternode count' in any wallet debug window. A graph of the total masternode count can be found at http://178.254.23.111/~pub/masternode_count.png

Submitting

To prevent mistakes and loss of collateral funds, make sure you've completed all the tasks in the checklist below before submitting your proposal to the network.

Proposal Checklist

      • proposal name
        • is 20 characters or less in length
        • does not match any currently active proposal names
      • url
        • is a shortened url and retrieves proposal page
      • proposal page
        • contains enough information for voters to decide their vote
      • payment amount
        • is reasonable compensation for project scope
      • payment count
        • is appropriate compensation for project duration
      • payment address
        • is backed up
      • payment start block
        • is far enough in the future to allow for discussion and to gather voting support

Commands

Once prepared, submitting the proposal to the network requires running the following two commands.
The first command (prepare) will create your collateral transaction.
The collateral transaction must mature (reach six confirmations (about 20 minutes)) before running the second command.
The second command (submit) publishes your proposal for voting.

mnbudget prepare

This command will destroy 5 dash in preparation to submit the proposal.  Once run, you may not make any changes without incurring another 5 dash fee.
Insert your own values and run this command via the debug window or dash-cli to submit:

       mnbudget prepare proposal-name url payment-count block-start dash-address monthly-payment-dash false

Example: mnbudget prepare mar-12-2015-bakesale http://goo.gl/XjUFZV 1 415400 XmoocowYfrPKUR6p6M5aJZdVntQe71irCX 10 false

It will return the transaction id of the collateral for the now-prepared proposal. Use this transaction id in the following command. You may not use this collateral transaction for any proposal other than this. No proposal values may be changed between these two commands.

mnbudget submit

After the collateral transaction reaches six (6) confirmations, you may run this command to publish your proposal for voting.
Insert your own values and run this command via the debug window or dash-cli to submit.
Hint: hit up-arrow and change prepare to submit, then replace the 'false' at the end with the transaction id. 

       mnbudget submit proposal-name url payment-count block-start dash-address monthly-payment-dash mnbudget-prepare-transaction-id

Example: mnbudget submit mar-12-2015-bakesale http://goo.gl/XjUFZV 1 415400 XmoocowYfrPKUR6p6M5aJZdVntQe71irCX 10 e734430e1c283fe236abb6c5a2fb272f1b9d4fc6a60421507973c6c451119039

It will return the proposal hash, which other nodes will use to vote on it. Sample output: a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491 

See Masternode Budget API for more details and example invocations.

Next steps

Once you have completed submitting your proposal to the network, it's time to get the word out.
Use social media to announce your proposal and contact community members to begin a discussion and gather voter support.

Project Proposal and Status UpdateTemplates

Voting

being written

Budgets

being written