A DAO is a decentralized organization running on rules encoded in computer software. DAOs generally use cryptocurrency to incentivize rule following to give honest control, ownership, and payment to participants.
The DAO name first captured the attention of the cryptocurrency world through the famous Ethereum DAO that gave rise to the Ethereum Classic fork in 2016. This DAO, called “The DAO” at the time, was a smart-contract-based organization for making investments. It was governed by token holders who purchased their tokens using Ether and voted on investments.
Though “The DAO” would turn out to be flawed and ultimately get hacked, lessons were learned from it and the DAO concept soared in popularity. DAOs solve many problems. The pre-cryptocurrency, pre-DAO world was organized into legal entities with constraining, government-defined forms. Corporations and LLCs allocate power and profit to owners, control to executives, and salary to employees. They rely on the legal system to enforce their rules. DAOs have revolutionized this by allowing better and flexible allocation of power, control, payment, and profit to participants who may be anonymous, global, and digital—with rules that are automatic, enforced by financial incentives.
DAOs have many forms. “The DAO” was managed through a smart contract on Ethereum. Smart contracts DAOs can be made using any cryptocurrency with a powerful-enough built-in programming language, like Ethereum, Solana, Avalanche, or Tezos. A smart-contract DAO is distinguished by being decoupled in its execution, success, and failure from the underlying cryptocurrency. It was this decoupling that allowed Ethereum Classic to continue despite “The DAO” being hacked.
But DAOs can also live as part of a cryptocurrency’s protocol. This native approach links the DAO closely to the underlying cryptocurrency’s execution, success, and failure. This tight coupling makes native DAOs ideal for managing the underlying cryptocurrency, with voting using the cryptocurrency itself instead of smart-contract tokens. The cryptocurrency Dash led in the development of this type of native DAO in 2014, where a fixed amount of Dash (first called Xcoin) could be locked to create a Masternode, with Masternodes voting to control payment for projects.
The PIVX DAO
PIVX was code forked from Dash in 2015 (originally as Darknet). It kept Dash’s blockchain-based governance structure, including multi-pronged block-reward distribution, voting Masternodes, and a Masternode-controlled treasury. With PIVX, at the time of this writing, every block in the blockchain allocates 3 PIV to a Masternode (one at a time in a rotating queue), 2 PIV to the staker generating the block, and 1 PIV to the PIVX treasury. The Masternode and staker payments are explicit on the blockchain, while the treasury payment is just passively counted for eventual payment to projects.
Payment to projects runs on a monthly cycle. Every 43,200 blocks—with blocks coming about once per minute to make this equal around 30 days—payment is made using a special block called a superblock. A superblock is like a normal PIVX block, but with a special transaction that pays all the selected proposals for the month all at once. Funded proposals are picked based on accumulated votes in a way that gives priority to proposals with the best voting score and keeps adding proposals until funds run out. The maximum total monthly funding, based on one PIV per block over a cycle, is 43,200 PIV.
Anyone can make a proposal for a fee of 50 PIV. Proposals can be for development, marketing, or any other activity. Sometimes proposals for small payments are used just to find community consensus on a new idea. A proposal is submitted using a PIVX wallet in a form that includes a requested (possibly multi-month) payment structure, an address for payment, and a URL pointing to a document describing the proposed activity. This proposal, like the eventual votes on it, is not actually stored on the PIVX blockchain. Instead, the information is broadcast and kept in a pool maintained separately by each node on the PIVX network. This way, the proposal/budget infrastructure does not take up blockchain space. The only blockchain impact is through that single monthly superblock.
The PIVX DAO is important, also, in what it cannot do. Its power is limited to the payment of treasury funds. It cannot enforce that the payments are used in a good way—or even used for PIVX at all. Enforcement must come through the effect of behavior on reputation and the resulting impact on future funding. For this reason, recurring funding to the same individual or team, who is building a reputation, can be beneficial. The PIVX DAO also cannot enforce any changes to the PIVX protocol or software. Those decisions and actions must be made by individuals who are influenced by the DAO only to the extent that control can be exerted through the promise of future funding.
Getting Involved: Proposing
PIVX’s powerful governance structure is open to all, including new members of the community. If you would like to join in, one way is by proposing work that will help PIVX. Common projects relate to writing software for PIVX, supporting PIVX infrastructure, or educating and getting people interested in PIVX.
The formal proposal itself is a small data set broadcast over the PIVX network. It is fast and easy to make using a PIVX wallet, and this will be described in detail below. What takes more effort in the proposal process, though, is generating documentation for your idea, promoting it, and engaging with the community. These additional steps often follow a standard process.
The first step in this process is what the community calls the pre-proposal. This is where you seek feedback for your early-stage idea informally on community forums and chatrooms. This engagement could be done on Reddit or Discord, but the most common way is through the PIVX Community Forum, which has an area set aside just for pre-proposal discussions. There you can submit pre-proposal documentation for feedback. Guidelines for pre-proposal documentation are available. A simple example of a pre-proposal posting, made to support this article, is available here. You can review other preproposal documents on the Community Forum to see how to add appropriate technical content.
After getting feedback and approval from the community on the pre-proposal, the final proposal documentation can be made. Usually it is posted to a different special area on the Community Forum just for this purpose. This documentation is mostly a copy of the refined pre-proposal, just put in a new place. It can be edited using the forum software. What you put on the Community Forum as the final proposal documentation typically serves as the online description that will be pointed to by the proposal data sent over the PIVX network. It is common to use a URL shortener to make a short link for the network-distributed proposal submission.
After the proposal document is set and the shortened URL is ready, the proposal can be submitted and sent over the PIVX network. The most common way to do this is using the Command Line Interface (CLI) on a PIVX wallet. If you are using the PIVX Core Wallet GUI—which you can download from the main PIVX website—you can access the CLI using Settings -> Debug -> Console in the GUI. This gives you an interface similar to what you would get if you ran a CLI wallet—using pivxcli under Linux, for example. To submit a proposal using this approach, take the following steps:
In the PIVX Core Wallet GUI console, type the following command:
This will return a block number for the earliest potential first payment. You will typically want to start with this block for your payment—call it starting_block. If you want to start later, maybe to give more time for voting, add multiples of 43,200 to this value.
Your proposal requires a monthly payment amount and the number of monthly payments. Call these pay_amount and num_payments. Let prop_name represent your proposal’s name in a concise format (no longer than 20 characters), customarily without spaces, and let link_url represent the URL for your proposal documentation, usually the documentation you made on the PIVX Community Forum and shortened using a URL shortener like Bitly. This URL must be 64 characters or less. Also, let pay_address be the PIVX address where you want payments to go.
With this information, you are almost ready. The command below requires ownership of 50 PIV plus a small (much less than 1 PIV) additional amount to cover the transaction fee. You will need this amount in your wallet. It will be consumed when issuing the command.
With 50+ PIV and all the information ready, type the following command in the console, replacing the variable names with your choices:
preparebudget prop_name link_url num_payments starting_block pay_address pay_amount
This will return a hash value. Call it prep_hash. It proves you paid the 50 PIV fee.
After waiting a few minutes to allow six confirmations of your 50 PIV payment (don’t worry if you try too soon, as you will just get an error message and can try again), using the above information, submit your proposal by typing the following command in the console:
submitbudget prop_name link_url num_payments starting_block pay_address pay_amount prep_hash
This will also return a hash, which will be used by Masternode operators to vote on your proposal. Call this vote_hash. After running the above command, you will want to go back to your proposal document on the Community Forum and edit it to add vote_hash—this will help people vote for your proposal.
Shown in the image below is the PIVX Core Wallet GUI console after submittng the following three commands:
preparebudget Example-Doc1-2022 https://bit.ly/357pGWD 1 3240000 D8T3xqNN6Bd6KGwKZ8nYfYScZJo7SSnSHV 10
submitbudget Example-Doc1-2022 https://bit.ly/357pGWD 1 3240000 D8T3xqNN6Bd6KGwKZ8nYfYScZJo7SSnSHV 10 377bd2f7675268f20f6456e5007d6fb33c98a4889025248864a5ba8903e56277
The resulting voting hash from these three commands is
This submission cost 50.0000235 PIV, the sum of the 50 PIV proposal cost and a small transaction fee.
After generating the voting hash this way, you should edit the proposal documentation on the forum to mark it as active and add the voting hash. Your proposal is now active and published. If elected for funding, you will be paid in the superblock you identified in your proposal.
Getting Involved: Voting
Another way to participate in the PIVX DAO is through management by voting. Voting on proposals requires a Masternode. A Masternode is created by running a specially configured online wallet, called the remote wallet, and combining it with holding 10,000 PIV in a (typically) separate wallet, called the controller wallet. The remote wallet must stay online, while the controller wallet only needs to be online to start the Masternode and can be offline after that. In addition to getting to vote, PIVX Masternodes earn rewards—so owning and operating a PIVX Masternode brings multiple benefits.
Custom services are available to host remote wallets that support PIVX Masternodes. An example masternode service provider is Allnodes. You can also run your own remote wallet on a Virtual Private Server (VPS) instance. An example VPS provider is Digital Ocean. To set up a wallet on a service provider, you can visit the provider’s website and follow their instructions. To set up your own wallet on a VPS, you can follow one of several tutorials provided by the PIVX community, such as this one.
For the controller wallet—the one holding 10,000 PIV—you can either use the PIVX Core Wallet or a hardware wallet like a Ledger. If you use a Ledger, you will probably want to manage your Masternode using the Secure PIVX Masternode Tool (SPMT), which is provided by the PIVX community. It can be downloaded here. For funding the controller wallet, you can buy 10,000 PIV from one of the community-recommended exchanges.
After setting up a Masternode, you have to wait a few days to be able to vote and to get rewards. This delay encourages continuous operation of remote wallets, which support the PIVX network. You will know your Masternode is ready to vote when reward payments start.
Voting is easy, and there are several ways to do it. If you are running your own remote wallet, you can vote directly from that remote wallet using the following CLI command:
mnbudgetvote vote_mode vote_hash vote_type
where vote_mode is “local” when running on the remote wallet (it would be “many” when running on a controller wallet), vote_hash is the voting hash, and vote_type is “yes” or “no”. For example, to vote in favor of the example proposal created in the last section, the following CLI command would be issued:
mnbudgetvote local a0651b13f7783d4181007c5485963b05e61903c8db387f11063e5618e881a6a2 yes
Alternatively, you can use GUI interfaces to your controller wallets. One option is the PIVX Core Wallet GUI, which has features to support Masternodes and voting. An alternative is the SPMT software discussed above. SPMT gives visual management of multiple Masternodes, their rewards, and their voting. Shown in the image below is the SPMT GUI ready to vote on the example proposal. As shown, clicking the “Vote YES” button in the bottom left will vote for the proposal, and clicking “Vote NO” will vote against it.
The SPMT software also shows running tallies of voting on all active proposals and offers easy access to the URLs pointing to the proposal documentation.
The ability to form new organizations as DAOs is an exciting application of cryptocurrency. And when a DAO is used to manage the cryptocurrency itself, it can be transformative. That is what PIVX offers. Its DAO manages PIVX’s unique, Proof of Stake, private cryptocurrency. And PIVX’s software tools make it easy to participate by making your own proposals and voting on others’ proposals. With PIVX and the PIVX DAO, you and your fellow PIVX community members are empowered and in control.