---
tags: v3, haus keeping
---
# v3 Haus Keeping 🧹 (Wednesday)
**March 2, 2022**
## Other Notes
- [TW Notes](https://hackmd.io/@TravisWyche/rJnCLGal9)
- [v3 Haus Keeping 🧹 (Tuesday)](https://hackmd.io/YHHwIeK8SlStMWjInUUVMw?view)
- [Baal Walkthrough (with Moloch Mystics): 2/9/22](https://hackmd.io/11coeaF_StCudM176W3ghw)
## Resources
- [Baal.sol](https://github.com/Moloch-Mystics/Baal/blob/main/contracts/Baal.sol)
- [feat/baalZodiac](https://github.com/Moloch-Mystics/Baal/blob/feat/baalZodiac/contracts/Baal.sol) branch
- MetaHaus Fig Jam
## Potential Topics
- Get through the rest of the Baal events and to a point where bill and dekan can fork Baal into the DH repo to get the Summoner up
- Jord to Rage 🔥 on a Summoner app to start process
## Baal Questions
- What should we name things? We use Moloch a lot already (for subgraph considerations)
- Keep generic? Generic "DAO"
- How do we talk about it generally? "Baal" or "Moloch v3"?
-
## Baal Events
`event Approval`
- ER20 `allowance` but applying to shares
- Need to check if member approves Baal to spend/transfer shares when creating proposals
- ERC20 approval that applies to shares since these are quasi-ERC20
- Transaction *before* transferring shares
- ie: Approve Baal to spend/transfer shares
- Called on Baal itself in similar way you'd call DAI contract to spend DAI, you'd call Baal to spend your shares (or have someone else spend them)
- Summoning: `name` and `symbol` are for `shares`
- for Loot, it's appended: ie
- `Cheese-loot`
- Loot named at factory contract and the shares get named at the Baal contract
**Questions and Considerations**:
- Need to explore patterns and common ABIs to get same level of proposal data in subgraph
- Previously able to discern a lot from the proposal, so may need to decode (Baal is infinitely variable -- Could be difficult in a subgraph mapping)
- Strong content strategy around base proposal types that we offer in the UI, but then can add additional context in the `details` that can contain patterns we can decode
- What to do if someone stacks multicalls? Will need audit ability in the UI
- Could be a good Rage 🔥 simulation
- Show warnings in UI when interacting with *unverified contracts*
- Making subgraph data less rich has impacts on the UX
`event Transfer`
- Focus on shares, but doing double duty
- Covers mint, burn, and transfer, and can determine based on from/to:
- if from member -> maybe burn
- if to Baal -> burn
- if from Baal to member -> minting
- if member to member -> transfer
- Can potentially break into separate events (transfer, mint, burn)
- If able to see the from and to together, able to discern
- TO Baal -> burn
- FROM Baal -> mint
`event TransferLoot`
- This is the same, but now that `loot` is own token has own events (potential for cleanup)
- Inherit `ERC20` events
- bill looking at this with new loot contract so may not need this in Baal itself
`event DelegateChanged`
- Emitted when member delegates to another member:
- From Sam to Bill -> `DeleteChanged` emitted and then triggers `DelegateVotesChanged` providing current snapshot of Sam's votes (`delegateFrom`)
`event ShamanSet`
- setting `shaman` and giving it permission levels (shamans are basically admins in the DAO, so attention needs to be given to the permission levels)
- What can a Shaman be?
- Any address (EOA or contract) that can call `mint` or `burn`
- Permissions:
- Three levels: `admin`, `manager`, `governance` -- docs needed for this. governance > manager > admin (power levels)
- `admin`:
- ability to turn on or off transferability of shares
- `manager`:
- can set guild tokens and convert shares to loot (rage kick)
- `governor`:
- all parameters that define the way the DAO works
- eg: set governance config, set/unset grace periods, set/unset voting periods, very high impact
- permission levels build:
- eg: `permission 5` = `admin` + `governor`
- can *only give something less power*
`event GovernanceConfigSet`
- emits when governance config changes
- `voting`
- `grace`
- `newOffering`
- anti-spam protection: how much ETH/xDAI must be sent to the DAO to submit a proposal
- UX consideration: if this is on, needs to be on all of our forms
- Spam protetion setting
- `quorum`
- `sponsor`
- how much voting power is needed to self-sponsor
- number of shares threshold, whereas `quorum` is a percentage
- `minRetention` -- parallel is `dillutionBound` in v2 (3 = 1/3 of DAO rage quitting kills a proposal)
- based on a 100 scale now. to have equivalent of 3 (current) we'd set at 66.6
- if 1/3 of the DAO quits, you retain 66.6% of the members
- could be a slider in the UI ("How much of the DAO needs to rage quit to kill a proposal")
- percentage based so cleaer to understand
- this applies to any proposal, not just mint
- Will want a special proposal detail view for proposals changing governance
`event GuildToken`
- Sets token on the default ragequittable list, needs to be set as a guild token (but can always *advanced rage quit*) to pass in additional tokens
- unset is Baal/manager only
- `guildTokens.pop()` - pop last token from the array
- How much do we want to expose in the UI?
- What do we want to show regarding Advanced Rage Quit (ARQ)?
- lean toward simpler -- ARQ meant for situations when member realizes that token is broken (such as missing a `transfer` function) and needing to skip over the broken token to successfully RQ
- safety valve if something has gone wrong (not being choosey about tokens)
- would sacrifice the token that isn't selected
- Is there an *attack vector* here?
`event SharesPaused` and `event LootPaused`
- logic for transferability of loot
- independent of each other: shares can be paused and not loot
- Example: LLC DAO
- Most LLCs allow transferance of economic privileges (loot)
- Allow another option to transfer governance (shares)
- Have this in settings: users can pause/unpause loot
- Top priority is focusing on making loot transferable since shares can be delegated (not transferred)
- Would want this to be *off* by default since this impacts the permissioned nature (need to think through quorum)
- This could make DAOs very complex, so start with permissioned and then extend outward as DAO evolves
- Cover the evolution of the DAO:
- Multi-sig -> permissioned -> token DAO (DAO can then evolve in complexity as community grows)
### Event Questions
- Are there any we don't want to include in the feed?
- What would we want in a UI news feed? How do we alert DAO members about things (especially things we're not exposing in the UI?)
- Flag events for high visibility
- Shaman creation definitely should be exposed since it's so powerful
## v3 Roadmap Order of Operations
- Get version of the Factory out and getting a Rage 🔥 going for the Summon flow
- Build out some junk apps to start building familiarity and identify what we need before building heavy UI
- Junk apps can be used to test packages, and then begin working on the real apps (either building on top of junk apps or building fresh app)
- Start with more bite-sized apps and go for the main course once we have the hub and summon apps built
- Junk apps: apps for iteration, not throwaway apps
- Rage 🔥 experiments
## Design
- Ven sharing MetaHaus FigJam
- Microservices coming through a curated Marketplace
- Shamans, Apps, Boosts, etc.
- Examples (purple is collaborative):
- Hub and Explore will be useful if not just Moloch
- Hub that has a list of DAOs
- Hub & Explore can be more open to other DAO types (token DAOs)
- MetaOS
- Interface above DAOhaus already (such as the Poster work)
- Where is the non-technical stuff? Our walkthroughs such as "What is as DAO?"
- Hub -> MetaOS
- Static site with core governance that then links to the respective interfaces (Gnosis Safe, Snapshot, Moloch)
- With Baal v3.1, DAOs aren't just Moloch DAOs anymore
- Can build Moloch UI *first* and build out from there
- Differentiation between micro-services and apps
- Having apps and boosts able to be shared between different places
- Where do layers on top of the Moloch UI go? Such as the Yeeter
- Yeeter to form Moloch DAO -> in the Moloch ecosystem
- There may be other similar examples that can lead into the formation of the Moloch UI
- DAOBooks would be an app
- Yeeter, DAOBooks, etc. are using tools from the Marketplace to build
- MetaOS:
- Frontend for your DAO
- Frontend of the Frontend
- Center of operations that can pull in lots of differnet items
- DAOs are amorphis, this can serve the purpose of helping unify
- This is a great place to explore some of the other features (docs, micro-blog, etc.)
- Could this be something that DH should do? Potential collaboration with less technical folks
- Why would we not want this in Moloch UI?
- Not everyone would wnt to engage with a Moloch, so this would take it one step higher and allow for integration for folks using different models (Snapshot for example)
- Separation of concerns (whoever is building this doesn't need to *build* the Moloch but would be able to *read* it)
- "UI middleware of DAOs"
### Feedback and Questions
- Consider adding Rage Reports and DAO blog experiments to this roadmap
- Hub and Explore: start with building ourselves and then collaborate with the community
- DeepDAO and DiamondDAO are working on something similar to Explore, so there are opportunities for collaboration
- As we build libraries we can use them in other junk apps for testing
- eg: Summoner app can be used to summon other experiments where we can test libraries we're making
- See how composable things are while building and can see how pieces *interact*
- Concern with library strategy:
- Need to be treated as non-production level code
- Should *inform* how we build things, but if we carry to prod we may incur code debt (especially with libraries)
- There is a large maintainence cost -- need to be able to update w/o breaking consumer code while retaining flexibility
- Best way to do this is to maintain a solid prod app that battle tests the libraries
- MetaOS will need to be community owned -- similar to a DAO first/community owned Notion
- Editing content as a DAO
- Creating apps along the way is motivating
### UberHaus Bolt-on
- Become it's own thing -- all DAOs that are using the MolochUI
- Bolt-on showing the UberHaus DAOs
- This could be a MetaOS thing
- Take the current Docusaurus and plug-in some MetaOS features
- What functionality is required?
## Next Steps & Action Items
- Scope out what initial builds could look like for each of these? Think about UX for a nimble version (MetaOS, Hub, Explore)
- Can we build a solid starter without our libraries at a prod level?
- Would do a better job when libraries are closer to ready
[] Compile list of the Rage apps
[] jp revisit the Baal Docs site started earlier this month and begin compiling the notes/docs everyone has contributed
[] Start with Summon and Moloch UI and review where we are and determine if ready to start raging
[] Think about UX for MetaOS, Hub, and Explore