Skip to Content
ConceptsDAO Governance

DAO Governance

On-chain governance via Solana Realms.

Overview

When you enable DAO governance, Etch creates a complete governance infrastructure on Realms:

  • Realm — The DAO itself, holding all governance state
  • Governance — Rules for proposals and voting
  • Treasury — A wallet controlled by the DAO

Enabling DAO

Add daoConfig to your launch request:

{ "name": "MyToken", "ticker": "MTK", "totalSupply": 1000000000, "reservePercent": 20, "daoConfig": { "enabled": true, "type": "community", "quorum": 10, "passThreshold": 60, "votingPeriodHours": 72 } }

Configuration Options

FieldTypeDefaultDescription
enabledbooleanfalseEnable DAO creation
namestringToken nameDAO display name
typeenum”community”community, council, or hybrid
quorumnumber10Minimum % of tokens that must vote
passThresholdnumber60% of votes needed to pass
votingPeriodHoursnumber72How long voting lasts
councilstring[]Council member wallets (council/hybrid)
councilThresholdnumberCouncil votes needed (council/hybrid)

DAO Types

Community DAO

All token holders can create and vote on proposals:

daoConfig: { enabled: true, type: "community", quorum: 10, // 10% of tokens must vote passThreshold: 60 // 60% yes votes to pass }

Council DAO

Only designated council members can govern:

daoConfig: { enabled: true, type: "council", council: [ "WALLET1...", "WALLET2...", "WALLET3..." ], councilThreshold: 2 // 2 of 3 council votes needed }

Hybrid DAO

Both community voting and council oversight:

daoConfig: { enabled: true, type: "hybrid", quorum: 10, passThreshold: 60, council: ["WALLET1...", "WALLET2..."], councilThreshold: 1 // Council can veto or fast-track }

Creating Proposals

After launch, create proposals via the API:

curl -X POST https://etch.film.fun/api/dao/REALM123.../proposal \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "Increase Marketing Budget", "description": "Allocate 100,000 MTK for Q2 marketing initiatives.", "type": "treasury_transfer", "actions": [ { "type": "transfer", "amount": 100000000000, "recipient": "MARKETING_WALLET..." } ] }'

Proposal Types

TypeDescription
treasury_transferSend tokens from treasury
mint_tokensMint new tokens (if enabled)
config_changeModify governance parameters
generalCommunity signaling (no on-chain action)

Voting

Cast votes on active proposals:

curl -X POST https://etch.film.fun/api/dao/REALM123.../vote \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{ "proposal": "PROPOSAL123...", "vote": "yes", "weight": 1000000 }'

Vote Options

VoteDescription
yesApprove the proposal
noReject the proposal
abstainParticipate but don’t choose
vetoCouncil-only rejection

Checking DAO Status

curl https://etch.film.fun/api/dao/REALM123... \ -H "Authorization: Bearer TOKEN"

Response:

{ "realm": "REALM123...", "name": "MyToken DAO", "type": "community", "governance": "GOV456...", "treasury": { "address": "TREASURY789...", "balance": { "MTK": 50000000, "SOL": 10.5 } }, "proposals": { "total": 5, "active": 1, "passed": 3, "failed": 1 }, "voters": 142, "config": { "quorum": 10, "passThreshold": 60, "votingPeriodHours": 72 } }

Managing via Realms UI

You can also manage your DAO directly on realms.today :

  1. Connect your wallet
  2. Search for your realm name
  3. View proposals, vote, create new proposals
  4. Manage treasury

Best Practices

  1. Start with higher quorum — Lower it as community grows
  2. Set reasonable voting periods — 48-72 hours is typical
  3. Document proposals — Include rationale and expected outcomes
  4. Use council for emergencies — Fast response for critical issues
  5. Communicate actively — Share proposal discussions in Discord/forums
Last updated on