run DAO governance
Snapshot is the default for DAO governance because it is the tool most communities already use: gasless off-chain voting with flexible token/NFT strategies and verifiable results. Safe (via oSnap) turns passed proposals into binding onchain execution, and ENS supplies space and voter identity. MACI and Semaphore are listed as alternatives for when privacy or anti-collusion outweighs Snapshot's transparent, gasless model.
Also available as JSON · Markdown
Recommended stack
Snapshot
Use Snapshot for gasless off-chain proposal voting with token/NFT/delegation strategies and verifiable results.
Safe
Execute passed proposals onchain through a Safe (e.g. oSnap) to make governance binding.
ENS (Ethereum Name Service)
Use ENS for the DAO/space identity and human-readable voter names.
Considered and excluded
- maci — MACI provides private, collusion-resistant voting; use it instead of Snapshot when ballot privacy or anti-collusion is required, at higher integration cost.
- semaphore — Semaphore enables anonymous signaling; an alternative when voter anonymity matters more than Snapshot's transparent, gasless tallies.
Risks
- Off-chain votes are not binding on their own; execution requires a module such as oSnap.
- Token- or NFT-weighted voting concentrates power with whales unless strategies are designed against it.
- Voting-strategy configuration errors can mis-count eligibility or weight; test strategies before launch.
- oSnap optimistic execution relies on timelocks and dispute windows; configure thresholds carefully.
Next steps
- Create a Snapshot space and define voting strategies (token, NFT, delegation).
- Decide whether results execute onchain via oSnap + Safe or remain signaling-only.
- Set quorum and approval thresholds appropriate to the community.
- If privacy or anti-collusion is required, evaluate MACI instead of public Snapshot voting.
What the agent receives
The intent page exposes the same structured recommendation shape agents should use: matched intent, stack roles, readiness scores, difficulty, risks, next steps, and registry version.
{
"intent": "I want my DAO or community to vote on proposals gaslessly and optionally execute results onchain",
"matched_intent": "run-dao-governance",
"recommended_stack": [
{
"slug": "snapshot",
"name": "Snapshot",
"role": "supporting_protocol",
"readiness_score": 84,
"integration_difficulty": "low",
"reason": "Use Snapshot for gasless off-chain proposal voting with token/NFT/delegation strategies and verifiable results."
},
{
"slug": "safe",
"name": "Safe",
"role": "supporting_protocol",
"readiness_score": 80,
"integration_difficulty": "low",
"reason": "Execute passed proposals onchain through a Safe (e.g. oSnap) to make governance binding."
},
{
"slug": "ens",
"name": "ENS (Ethereum Name Service)",
"role": "wallet_and_identity",
"readiness_score": 80,
"integration_difficulty": "low",
"reason": "Use ENS for the DAO/space identity and human-readable voter names."
}
],
"excluded_candidates": [
{
"slug": "maci",
"reason": "MACI provides private, collusion-resistant voting; use it instead of Snapshot when ballot privacy or anti-collusion is required, at higher integration cost."
},
{
"slug": "semaphore",
"reason": "Semaphore enables anonymous signaling; an alternative when voter anonymity matters more than Snapshot's transparent, gasless tallies."
}
],
"risks": [
"Off-chain votes are not binding on their own; execution requires a module such as oSnap.",
"Token- or NFT-weighted voting concentrates power with whales unless strategies are designed against it.",
"Voting-strategy configuration errors can mis-count eligibility or weight; test strategies before launch.",
"oSnap optimistic execution relies on timelocks and dispute windows; configure thresholds carefully."
],
"next_steps": [
"Create a Snapshot space and define voting strategies (token, NFT, delegation).",
"Decide whether results execute onchain via oSnap + Safe or remain signaling-only.",
"Set quorum and approval thresholds appropriate to the community.",
"If privacy or anti-collusion is required, evaluate MACI instead of public Snapshot voting."
],
"generated_with": "composewith.eth",
"registry_version": "2026.07.02-5a6fd5e"
}