|
| 1 | +--- |
| 2 | +sidebar_position: 4 |
| 3 | +--- |
| 4 | + |
| 5 | +# Create NFT Community DAO |
| 6 | + |
| 7 | +NFT Community DAO is a DAO where NFTs are used as the governance token. |
| 8 | +Any DAO can enable NFT voting through the Plug & Play mechanism of [spl-governance](https://github.com/solana-labs/solana-program-library/blob/master/governance/README.md). |
| 9 | + |
| 10 | +In order to enable NFT governance for a DAO the [NFT voting plugin](https://github.com/solana-labs/governance-program-library) has to be enabled for the DAO. |
| 11 | + |
| 12 | +:::danger Security |
| 13 | +As of 29/04/2022 the NFT voting plugin program hasn't been security audited yet. Use at your own risk. |
| 14 | +::: |
| 15 | + |
| 16 | +The NFT voting plugin grants governance power to NFTs based on the [Metaplex Certified Collection](https://www.metaplex.com/posts/certified-collections) they belong to. |
| 17 | +In the most basic scenario each NFT gives its owner 1 vote. The owner can have multiple NFTs and vote with all of them at once. |
| 18 | +A DAO can also use more advanced scenarios where multiple collections with different voting power are used. |
| 19 | +This way a multi tier governance structure can be created where different NFTs can represent |
| 20 | +different membership levels. |
| 21 | + |
| 22 | +:::tip Note |
| 23 | +Metaplex supports certified collections from version 1.1 of the standard. |
| 24 | +NFTs minted with the older Metadata standard must be upgraded first to the latest version before they can be used for governance. |
| 25 | +::: |
| 26 | + |
| 27 | +Only NFTs with certified collection on their Metadata can participate in governance. |
| 28 | + |
| 29 | +:::danger Security |
| 30 | +Beware the authority of the collection can certify and uncertify NFTs for the collection. |
| 31 | +It means it has the ultimate power to decide who can and can't vote in the DAO. |
| 32 | +It's recommended for the authority to be transferred to the DAO. |
| 33 | +::: |
| 34 | + |
| 35 | +## Create DAO |
| 36 | + |
| 37 | +If you have your DAO already created you can skip this section. |
| 38 | +However please take note of the DAO parameters needed for the setup and adjust your DAO configuration accordingly. |
| 39 | + |
| 40 | +In order to create the NFT Community DAO use the [Bespoke DAO Wizard](bespoke-DAO.md) with the following parameters: |
| 41 | + |
| 42 | +**`Min community tokens to create proposal`** - Set to 1 to allow each NFT holder to create new governances. |
| 43 | +If more restrictive setup is required the min threshold can be set to a higher value accordingly. |
| 44 | + |
| 45 | +**`Custom program Id`** - Use the default instance of `spl-governance` or an instance with minim version of v2.2.4 |
| 46 | + |
| 47 | +:::danger |
| 48 | +spl-governance program version must be equal or higher than v2.2.4 for the NFT plugin to work correctly. |
| 49 | +If the plugin is enabled for older versions it can result in irreversible deadlock of the DAO. |
| 50 | +::: |
| 51 | + |
| 52 | +**`Council`** - Setup a DAO with the council. |
| 53 | + |
| 54 | +:::tip |
| 55 | +It's recommended to always setup the council as a Multisig for the initial DAO members. |
| 56 | +The members would be able to moderate the DAO governance process at its inception and prevent |
| 57 | +irreversible actions like setting impossible quorums or defending the DAO from governance attacks. |
| 58 | +After successful decentralization the council can be removed thorough a proposal. |
| 59 | +::: |
| 60 | + |
| 61 | +## Configure NFT Voting Plugin |
| 62 | + |
| 63 | +In order to configure the NFT Plugin a proposal with the following 3 instructions must be created. |
| 64 | +Note: The proposal must be created for the governance with realm authority. |
| 65 | + |
| 66 | +1. Create NFT plugin registrar |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +2. Create NFT plugin max voter weight |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | +3. Configure NFT plugin collection |
| 75 | + |
| 76 | + |
| 77 | + |
| 78 | +The NFT collection configuration instruction must be added for every NFT collection which should be allowed |
| 79 | +to participate in governance of the DAO. |
| 80 | + |
| 81 | +Each NFT collection has the following parameters: |
| 82 | + |
| 83 | +**`Collection size`** - The number of certified NFTs in the collection. The size of the collection is |
| 84 | +used to calculate the maximum voter weight and voting quorum levels. |
| 85 | + |
| 86 | +**`Collection weight`** - The relative voting weight of the NFTs from the collection. |
| 87 | +In multi collection setup it allows to |
| 88 | +assign different voting weights to different NFTs and create multi NFT / multi tier governance setup. |
| 89 | +For a single collection it should be set to 1 |
| 90 | + |
| 91 | +**`Collection`** - The Id of the NFT collection which should be used for governance. |
| 92 | + |
| 93 | +:::tip |
| 94 | +The collection ID can be found on the NFT explorer view. For example for [SMB NFT](https://explorer.solana.com/address/Fckuc1pnqQxsMMa3R8Smccz2iS5YQBeos7pG7xV4B1Ma) the collection id is `SMBH3wF6baUj6JWtzYvqcKuj2XCKWDqQxzspY12xPND` |
| 95 | + |
| 96 | + |
| 97 | +::: |
| 98 | + |
| 99 | +## Enable NFT Voting Plugin |
| 100 | + |
| 101 | +Once the NFT voting plugin configuration proposal is voted on and all instructions executed the DAO can enable NFT governance |
| 102 | +through a `DAO Config Change` proposal. |
| 103 | + |
| 104 | +From the DAO parameters page select `Change Config` option |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | +And then set the DAO configuration parameters |
| 109 | + |
| 110 | +Both **`Community voter weight addin`** and **`Community max voter weight addin`** parameters should be set to |
| 111 | +the NFT Voting Plugin Program Id `GnftV5kLjd67tvHpNGyodwWveEKivz3ZWvvE3Z4xi2iw` |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | +## Voting with NFTs |
| 118 | + |
| 119 | +Once the proposal to enable the NFT Voting Plugin for the DAO is executed any owner of an NFT from the configured |
| 120 | +collection can participate in the DAO governance. |
| 121 | + |
| 122 | +The NFTs eligible for governance are displayed in the account view. |
| 123 | + |
| 124 | + |
0 commit comments