Skip to main content

How to Create a DAO on Solana using Realms

Created on
Updated on
Dec 17, 2024

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:

  1. Learn about the different types of DAOs you can create with Realms
  2. Create an NFT-gated DAO with Realms
  3. Explore some of the features of Realms

What You Will Need

Create a DAO with Realms

Realms allows users to create 3 different types of DAOs:

  1. Multisig Wallets, which are essentially just shared wallets between multiple members
  2. NFT Community DAOs, which are DAOs that are gated by NFT ownership (giving NFT owners voting rights)
  3. Community Token DAOs, which are DAOs that are gated by token ownership (giving token owners voting rights)

Realms DAO Types

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:

  1. 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.

  2. 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 and collection.png in your uploads 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's 4dJw35V4aPrxfGSgER498f2XpitF1PJmMi22LWCVXLow:

Collection Mint

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%:

Collection Size

Click the next arrow when you're ready to move forward.

  1. 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.

  1. Verify your information looks correct and click Create NFT Community DAO. You will be prompted to sign a transaction.

Create DAO

After your transaction is confirmed, you will be redirected to your DAO's dashboard. It should look something like this:

DAO Dashboard

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.

  1. 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).

Governance Power

  1. 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.

DAO Wallets & Assets

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:

Deposit SOL

  1. 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:

Proposal Context

Click "✔️ Create Proposal" and sign the transaction. If successful, you should see the new proposal on your DAO's dashboard:

Proposal Created

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:

Vote

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):

New Proposal

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.

Share this guide