6 min read
Overview
Decentralized Autonomous Organizations (often called DAOs) are a new way to organize people and resources in a decentralized manner. Powered by web3, DAOs are a group of individuals who come together to achieve a common goal. DAOs are often used to manage web3 protocols, manage funds, make decisions, and coordinate resources. DAO memberships are often tracked through tokens or NFTs ownership, and members typically have voting rights to make decisions on behalf of the DAO.
Solana Labs has built a DAO governance protocol, Governance UI, a Solana program that allows users to create and manage DAOs, vote on proposals, and manage DAO treasuries. Realms is a web interface for the Governance UI where users can easily interact with the protocol. This guide will teach you how to use Realms to create a DAO on Solana.
What You Will Do
In this guide, you will:
- Learn about the different types of DAOs you can create with Realms
- Create an NFT-gated DAO with Realms
- Explore some of the features of Realms
What You Will Need
- Basic knowledge of Solana Fundamentals
- Basic knowledge of Web3 Wallets
- A modern web browser like Chrome or Firefox
- A Solana Wallet with SOL or Devnet SOL (~0.1 SOL should be sufficient for creating and testing a Squad multisig wallet). Check out our Guide on Airdropping Devnet SOL.
- Experience with Solana NFT Metadata: Guide: Solana NFT Metadata Deep Dive
Create a DAO with Realms
Realms allows users to create 3 different types of DAOs:
- Multisig Wallets, which are essentially just shared wallets between multiple members
- NFT Community DAOs, which are DAOs that are gated by NFT ownership (giving NFT owners voting rights)
- Community Token DAOs, which are DAOs that are gated by token ownership (giving token owners voting rights)
In this guide, we will create an NFT Community DAO.
Get started by navigating to Realms and connecting your wallet. Click Create DAO
on the top right of the screen, and select "NFT Community DAO." This should initiate a 6-step process to create your DAO:
- Name your DAO
Note: you will see an advanced option to use a custom program ID. This would be for users who have forked the governance program.
- Select an NFT to gate your DAO. You will need to use a Certified Solana NFT (About Metaplex Certified Collections). If you create an NFT collection using a Candy Machine, you will automatically have a Certified Solana NFT (just make sure to include
collection.json
andcollection.png
in youruploads
directory). More information on creating an NFT collection with Candy Machine is available here. Here's the mint of the NFT we'll be using: 4e6YtmJY4BaGQPejK59E2XNxd6fRqsvHxuysCthAZabB, but be careful--we need the mint of the Collection NFT, not the mint of the individual NFT. You can find the mint of the Collection NFT by clicking on the "Metadata" tab on the NFT's Solana Explorer page. Scroll to the bottom and find the collection key. That's what we will be using. For us, it's4dJw35V4aPrxfGSgER498f2XpitF1PJmMi22LWCVXLow
:
Paste that into the address bar (or select an NFT from your wallet). You'll need to know the collection size to set a voting threshold for your DAO. For ours, we have 20 NFTs and will set the voting threshold to 66%:
Click the next arrow when you're ready to move forward.
- You will be asked whether or not you would like to form a DAO Council. DAO Councils are optional subsets of members who have the ability to create, moderate, and supervise DAO activities. If you would like to create a DAO Council, you will need to specify a "Council Token" address, a token unique to the DAO Council, or Realms will make one for you (in which case you will need to supply a list of addresses). For this guide, we will not create a DAO Council.
Steps 4-5 are optional and only accessed when creating a DAO Council. They involve defining your members and setting a voting threshold similar to steps 1 and 2.
- Verify your information looks correct and click
Create NFT Community DAO.
You will be prompted to sign a transaction.
After your transaction is confirmed, you will be redirected to your DAO's dashboard. It should look something like this:
Great job! You have created a DAO. The DAO is now publicly accessible at the address in your address bar; however, only connected wallets with qualifying NFTs can interact with it. Pretty cool!
Let's explore some of the features of Realms.
Exploring Realms
Let's take a look around.
- Governance power: in the top right, you will see your total governance power (in this case, the # of qualifying NFTs you hold). If you open this, you will be taken to a page where you can delegate your voting power to another address (this might be helpful, for example, if your NFTs are stored in a cold wallet).
- Assets owned or controlled by the DAO. You will see sections on the right of the screen for NFTs, Tokens, and Programs. In this case, we have no assets, but I would encourage you to open up the "DAO Wallets & Assets" page, as there is a lot of information and tools for expanding DAO functionality.
As you can see here, you can see/edit DAO rules, add tokens to your treasury, create new wallets (with alternative rulesets), and see your assets at a glance. There's also a button in your DAO wallet to deposit SOL. Clicking it will reveal a QR code that you can use with a mobile wallet and a copyable address:
- You'll see two buttons for creating proposals: one for DAO configuration changes (accessible by clicking "⚙️ Params") and one for more advanced proposals by clicking "⊕ New Proposal."
Let's look at each.
Creating Proposals
Change DAO Configuration
Let's start by looking at DAO configuration changes. Click on "Params" to open up some options to change the configuration of our DAO. Here you can change or create community tokens (e.g., for creating or modifying a DAO council), or you can change the voting configuration of your DAO (by clicking "Change config" under the Params
tab). Let's propose to change the voting time for new votes in our DAO. Click the "Change config" button and adjust the new voting duration to your liking. Click continue. You'll be prompted to name your proposal and add context for voting members:
Click "✔️ Create Proposal" and sign the transaction. If successful, you should see the new proposal on your DAO's dashboard:
You can click on the proposal to see more details about it. You can see the proposal's status, the proposal's details, and the voting results. On the bottom right corner of the page, you can cast your vote. Click to approve or reject the proposal and leave a comment for others in the DAO:
Because I set the voting threshold to 14 NFTs, I cannot authorize this change myself. I will need to find other members to vote with me.
Create a New Proposal
Let's return to the dashboard and click "⊕ New Proposal." You'll be directed to a page to create a more bespoke proposal of one or more transaction instructions. Here you can describe a proposal for members and choose from a number of pre-defined transaction instruction types. Select the drop-down to see all of the options available. Once a transaction type is selected, you'll be prompted to enter the necessary inputs for the proposal (e.g., transfer destination and amount):
You can add additional instructions as you like for your proposal or just click "Add proposal" when you're done. When you are getting started with your DAO, explore the different transaction types that can be included in a proposal to understand what's possible. If you're looking for a transaction type not included in the drop-down, you can submit a PR to the Governance UI repository to add what you want.
For the purposes of this example, we will not create another proposal, but if you do, you will be able to see it on your DAO's dashboard (just like the previous example).
Nice job! If you want to dig in more to what you can do with Realms, check out their docs, here.
Wrap up
DAOs are a great way to organize and coordinate with others in a decentralized manner. Realms makes creating a DAO for your community to manage resources and vote on proposals easy. As you can see by browsing around the Realms DAO site, there are many projects on Solana that utilize Realms to manage their communities (e.g., Mango, Metaplex, Grape, SamoDAO, and more).
We would love to hear more about how you use DAOs and what type of governance structure you use. Drop us a line in Discord, or give us a follow on Twitter to stay up to date on all the latest information!
We ❤️ Feedback!
Let us know if you have any feedback or requests for new topics. We'd love to hear from you.