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
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Enable DAO creation |
name | string | Token name | DAO display name |
type | enum | ”community” | community, council, or hybrid |
quorum | number | 10 | Minimum % of tokens that must vote |
passThreshold | number | 60 | % of votes needed to pass |
votingPeriodHours | number | 72 | How long voting lasts |
council | string[] | — | Council member wallets (council/hybrid) |
councilThreshold | number | — | Council 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
| Type | Description |
|---|---|
treasury_transfer | Send tokens from treasury |
mint_tokens | Mint new tokens (if enabled) |
config_change | Modify governance parameters |
general | Community 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
| Vote | Description |
|---|---|
yes | Approve the proposal |
no | Reject the proposal |
abstain | Participate but don’t choose |
veto | Council-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 :
- Connect your wallet
- Search for your realm name
- View proposals, vote, create new proposals
- Manage treasury
Best Practices
- Start with higher quorum — Lower it as community grows
- Set reasonable voting periods — 48-72 hours is typical
- Document proposals — Include rationale and expected outcomes
- Use council for emergencies — Fast response for critical issues
- Communicate actively — Share proposal discussions in Discord/forums
Last updated on