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
passThresholdnumber60Yes votes needed, as a % of all non-treasury supply (not of votes cast)
votingPeriodHoursnumber72How long voting lasts
metadataAuthorityenum”etch”"dao" hands the token’s metadata update authority to the DAO’s governance after launch
vetoHolderstringbeneficiaryWallet that receives the single veto token (use a multisig when launching for others)
quorumnumber10Deprecated: accepted and ignored
councilstring[]—Accepted but not used yet
councilThresholdnumber—Accepted but not used yet

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