draft · last edited 2026-05-06 14:52
DAO Packages, Frameworks, and Reference Implementations
A reading list. Don’t reinvent what 50+ DAOs have already battle-tested. Each entry below: what it is, why we care, what to inspect, link.
Organized by layer, top-down.
1. Voting (off-chain) — Snapshot
The de-facto standard for off-chain governance. Roughly every major DeFi DAO (Aave, Balancer, ENS-precursor, Curve-signaling, Sushi, GMX, Optimism Citizens’ House, etc.) runs a Snapshot space.
- Snapshot front-end / hub — https://github.com/snapshot-labs/snapshot
- Snapshot.js (SDK to read/write proposals programmatically) — https://github.com/snapshot-labs/snapshot.js
- Snapshot strategies (the voting-weight functions — this is where we’ll plug in wBOB + LP) — https://github.com/snapshot-labs/snapshot-strategies
- Snapshot docs — https://docs.snapshot.org/
What to inspect first:
- snapshot-strategies/src/strategies/erc20-balance-of/ — the simplest strategy. We will probably start here.
- snapshot-strategies/src/strategies/uniswap-v3/ and balancer/ — examples of how LP positions are counted. Adapt for Oku.
- snapshot-strategies/src/strategies/erc20-votes/ — what we’d swap to if we ever wrap into gwBOB.
- The Aave Snapshot space JSON for an example of strategy composition.
2. Treasury custody — Safe (formerly Gnosis Safe)
The multisig that holds the money. Used by ~all DAOs.
- Safe smart contracts — https://github.com/safe-global/safe-smart-account
- Safe transaction service (the indexer / API) — https://github.com/safe-global/safe-transaction-service
- Safe{Wallet} (the web app) — https://app.safe.global/
- Safe SDK (programmatic tx building) — https://github.com/safe-global/safe-core-sdk
What to inspect first:
- safe-smart-account/contracts/Safe.sol — the canonical multisig contract. Read the execTransaction flow.
- The module interface (enableModule, execTransactionFromModule) — this is what Zodiac plugs into.
Gnosis Chain has Safe support natively (it’s literally Gnosis’s chain). Costs ~$0.001 to deploy and operate.
3. Execution bridge — Zodiac
The “operating system” for Safe-based DAOs. Lets a Safe delegate decisions to other modules: Snapshot results, on-chain Governors, oracles, etc.
- Zodiac monorepo — https://github.com/gnosisguild/zodiac
- Zodiac Reality Module (SafeSnap) — https://github.com/gnosisguild/zodiac-module-reality
- oSnap (Snapshot’s preferred) — https://github.com/UMAprotocol/protocol/tree/master/packages/core/contracts/optimistic-oracle-v3 + Zodiac wrapper at https://github.com/gnosisguild/zodiac-module-oSnap
- Zodiac Roles Modifier (granular permissions on a Safe — useful later for “ops Safe can spend up to 5k xDAI/week without proposal”) — https://github.com/gnosisguild/zodiac-modifier-roles
- Zodiac docs — https://zodiac.wiki/
What to inspect first:
- zodiac-module-oSnap/contracts/OptimisticGovernor.sol — the contract we’ll attach to Treasury Main Safe.
- zodiac-modifier-roles — to scope what the Ops Safe can sign without DAO vote.
4. On-chain governance (Phase 2 if we go there) — OpenZeppelin
The reference Solidity implementation of Compound-style governance, modernized.
- OpenZeppelin Contracts — https://github.com/OpenZeppelin/openzeppelin-contracts
- Governor wizard (generates a starter Governor by checkbox UI) — https://wizard.openzeppelin.com/#governor
What to inspect first (paths inside the OZ repo):
- contracts/governance/Governor.sol — base.
- contracts/governance/extensions/GovernorVotes.sol + GovernorCountingSimple.sol — the standard voting + tally.
- contracts/governance/extensions/GovernorTimelockControl.sol — hooks the Governor to a TimelockController.
- contracts/governance/TimelockController.sol — the actual treasury owner in this model.
- contracts/token/ERC20/extensions/ERC20Votes.sol — the checkpoint-tracking voting token base.
- contracts/token/ERC20/extensions/ERC20Wrapper.sol + ERC20VotesWrapper — this is the contract that lets us turn vanilla wBOB into gwBOB without redeploying wBOB. Read this carefully if/when we Phase 2.
OZ Governor is what ENS, Compound, Uniswap (Bravo), Optimism Token House all use, with light customization.
5. Alternative DAO frameworks — for compare/contrast
These are what we’d use instead of rolling our own Snapshot+Safe+Zodiac. We don’t recommend them for SubGenius, but it’s worth knowing what they offer.
5.1 Aragon
Full-stack DAO platform. Heavyweight. Has its own contract suite + UI. - https://github.com/aragon - https://github.com/aragon/aragon-stack - Why not us: more abstraction than we need; vendor lock-in; UI bias toward EVM mainnet.
5.2 DAOhaus / Moloch v3
Minimalist “guild” DAOs. Very low-overhead. Good for grant-disbursing DAOs. - https://github.com/HausDAO - https://github.com/Moloch-Mystics/Baal (Moloch v3 / “Baal”) - Why interesting for us: opt-in “ragequit” — members can withdraw their pro-rata share of treasury and exit. Fits the SubGenius “abandon the Conspiracy” ethos. - Why not (yet): Moloch’s voting token is a non-transferable shares token. We want wBOB to be the vote-weight, and wBOB is freely transferable. Different model.
5.3 Tally
Hosted UI for OZ-Governor-style DAOs. If we Phase 2, this is the cheapest UI. - https://github.com/withtally - https://www.tally.xyz/ - Used by ENS, Uniswap, Optimism, Arbitrum, Gitcoin.
5.4 Boardroom
Aggregator UI across Snapshot + Tally. Good for visibility. - https://boardroom.io/
5.5 Llama / Llama Governance
Role-based on-chain governance. More flexible than Governor for org-chart-style DAOs. - https://github.com/llamaxyz/llama - Worth a read for how role-gated execution looks if we ever want “Ops can do X without full proposal.”
6. Roles and identity — Hats Protocol
For non-token-weighted authority (Council seats, Operator roles, Minister tiers). On-chain, modular, composable with Zodiac.
- https://github.com/Hats-Protocol/hats-protocol
- https://docs.hatsprotocol.xyz/
Why we care: “Pope of Slack” and “Council member” don’t map cleanly to wBOB balance. Hats lets us mint, revoke, and chain hierarchical roles on-chain. A Council seat = a Hat. A signer of a Safe = wear-the-Hat-or-can’t-sign.
This is the cleanest way to do soulbound ordainment NFTs with actual mechanical effect.
7. Time-locked / boosted voting (Curve-style) — for Phase 1.5
If we want the vBOB lock-for-boost mechanic.
- Curve veCRV (the original) — https://github.com/curvefi/curve-dao-contracts
contracts/VotingEscrow.vyis the canonical implementation. Vyper.- Solidly / Velodrome ve(3,3) — https://github.com/velodrome-finance/contracts
- Solidity port + improvements.
- Aave’s stkAAVE — https://github.com/aave/aave-stake-v2
- Different model: stake for safety module, get voting boost. Probably not what we want, but worth seeing.
What to inspect first:
- curve-dao-contracts/contracts/VotingEscrow.vy — the math of balanceOf(t) = lock * (1 - t/T_max) linear-decay voting weight.
8. Reference DAOs to study end-to-end
When you read a framework, also read a DAO that uses it well, to see the parameters they actually chose.
| DAO | Chain | Stack | Why study it |
|---|---|---|---|
| Balancer | Ethereum + Gnosis | Snapshot + Safe + Zodiac (oSnap) | Closest to our intended stack. Read their Snapshot space + treasury Safe. |
| Lido | Ethereum | Aragon (custom) + Easy Track | Treasury delegation patterns. |
| ENS | Ethereum | OZ Governor + Tally | Cleanest reference Governor; charter-as-document is well-written. |
| Uniswap | Ethereum | Compound Governor Bravo | Original on-chain Governor, still influential. |
| Optimism | OP | Bicameral (Token House + Citizens’ House on Snapshot) | Two-chamber design; relevant if we ever want Council vs. Holders as separate chambers. |
| Gitcoin | Ethereum | Snapshot + Safe + Tally hybrid | Grant-issuance patterns directly relevant to our grants scope. |
| Olympus | Ethereum | OZ Governor + custom | Treasury-funded buy-and-hold mechanics — relevant to our buy-back-and-burn. |
| PoolTogether | Multi-chain | Snapshot + Safe (multi-chain) | Cross-chain coordination — relevant if DAO ever spans Gnosis + native (BOB) signaling. |
For each: read their forum (charter discussions), their Snapshot space (executed proposal list), and their Safe (treasury composition).
9. Tooling — proposal authoring, indexing, UI
- Tenderly (simulate Safe txs before vote) — https://tenderly.co/
- Defender by OZ (monitor Safe / Governor activity) — https://defender.openzeppelin.com/
- The Graph (subgraph for indexing DAO state for our own UI) — https://thegraph.com/ + https://github.com/graphprotocol/graph-node
- Scaffold-ETH 2 (boilerplate for any custom DAO UI we build) — https://github.com/scaffold-eth/scaffold-eth-2
- Wagmi + viem (the React-side libs for connecting wallets and reading on-chain state) — https://github.com/wevm/wagmi, https://github.com/wevm/viem
10. Reading order I’d recommend
If you only read 5 things before writing the charter:
- Snapshot docs — https://docs.snapshot.org/ — understand strategies and proposal lifecycle.
- oSnap / Zodiac docs — https://docs.uma.xyz/developers/osnap and https://zodiac.wiki/ — understand how off-chain votes become on-chain actions.
- Balancer governance forum + Snapshot space — see a real DAO using exactly our stack.
- OpenZeppelin
Governor.sol+ERC20VotesWrapper.sol— to know what we’re explicitly not using in Phase 1, so the eventual Phase-2 migration is informed. - ENS DAO charter — https://docs.ens.domains/dao/constitution — gold-standard example of a clear charter document.
11. Appendix — wBOB and bridge contracts (for reference inside the DAO design)
| Contract | Address | Network |
|---|---|---|
| wBOB ERC-20 | 0x13550ae65f22A36f60A50d625B70b58666488263 |
Gnosis Chain (chainId 100) |
| BridgeController | 0x20a9A6D5FB3615a79603a6Ed74A3d26FB11aB872 |
Gnosis Chain |
The Snapshot strategy points at wBOB. The DAO Safes operate on Gnosis Chain alongside it. The bridge sits adjacent and is not under DAO control in Phase 1.
Marginalia