RFC: MVIV: Dagon Singletons

Request For Coordination.

Moloch is the OG grant-giving DAO. Moloch has various ventures to make things happen. The community has coordinated a bit, from time to time, to version up the Moloch giving stack. For example, Moloch I and MII demo a staked proposal, tribute and ragequit implementation. III, a more multiplayer system that integrates with more contracts, like Safes. These so far have been good reference points for the wider ecosystem and allowed more people to coordinate better. A mix of the best-of-meets-likely-next. The so-called Moloch upgrades.

Fast forward a bit. There have been many ecosystem wide updates that are worth considering now for Moloch DAOs. Namely, the gains in account abstraction in ERC-4337, as well as better gas-saving techniques in smart contract libraries like Solady, offer to allow people to self-custody (not your keys, not your DAO) and actually do things onchain en masse.

Singleton architecture is one such other technique that has been ontrend in contract community (see UniV4) to reduce gas costs and make certain primitive functions behave more like library goods. The last two Moloch implementations revolve largely around similar infra in the form of factory contracts that clone them into separate DAO instances for users.

It seems useful, therefore, to also consider a singleton design for voting as an extension in Moloch DAOs, as they settle today. And find efficient ways to bridge account and governance abstraction, definitively, and at the right time, the Moloch way.

This proposed upgrade, dubbed Dagon, is designed as such a singleton that provides the following key functionality to DAOs: Any account can install Dagon to set a token and threshold for a batched signature or onchain vote.

A reference implementation of the Dagon Singleton is provided here with tests: Dagon.sol

1 Like

Small update on road to stable implementation. Dagon V0 (DV0) is deployed to Ethereum and Optimism at the following same address: 0x0000000000001D4B1320bB3c47380a3D1C3A1A0C.

Discussion on how to play with it for existing tokens, Molochs and such are in the MetaCartel discord atm: MetaCartel DAO.