--- tags: v3, haus keeping --- # v3 Haus Keeping 🧹 (Thursday) **March 3, 2022** - Today's focus is primarily design ## Other Notes - [v3 Haus Keeping 🧹 (Wednesday)](https://hackmd.io/FGSL2IK4SjO7vukxR4FiTQ?view) - [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 ## Summoning Form - What would be in Easy Mode (using defaults) and Hard mode (customizable settings) - self-sponsor threshold, quorum - Start with building out Hard Mode and then we'll work back to what is included in Easy Mode - When cloning, these settings will be included (quorum, self-sponsor, spam protection) - What is included in DAO Metadata? - Name, avatar, description, long description, community links, tags? (thinking for Explore) - Would we want to pull this into it's own app? "Register your DAO" ### Userflow for Summoning: - Begin with some standard settings or expand and customize each field set - Starting Guild Tokens - Step users through each element (section by section) - Advanced: - Paste a token address in or select common tokens from a token list - if pasting one in, check to make sure that it's an ERC20 token - Proposal Timing - voting length and grace period length - potentially no velocity (will need to check the latest code) - Toggle for if you have an existing safe? - Would we want to introduce boosts at this point in the flow? - Where would we add boosts? this is tricky from a UX standpoint - look at priority boosts as a potential starting point - person submitting the proposal is the wrong person who can tweak proposal settings (we need to guard this as its a potential attack vector -- Shamans are very powerful due to their governance abilities) - Starting Members - option to import from list as a CSV (advanced) - Address - Shares - Loot - Similar to current UI flow - Starting Shamans - Currently an address, but has room for curated Shamans (such as the Yeeter) - When setting Shamans, need to tell it what permissions it has: - Admin, Manager, Governance and these can stack (will want to leverage explainer content to make sure that this is clear for users since this is highly impactful) - Shaman requires a Moloch address to scope itself (unless its an EOA) - EOA as a Shaman is something we don't necessarily want to happen much - How do we explain what's going on and why certain fields are important? - Many users may have questions about these, such as "What is a governance Shaman?" - 1) don't provide as options (ignore some aspects at first) - 2) provide clear copy that adequately inform users - 3) rich content and explainers to help folks who are unaware make an informed decision - However, for the Rage 🔥 we should include a clean Hard Mode and then *learn what Easy Mode is* and strip out what is potentially confusing for users - Start with *assigning existing Shamans* at first -- you would need to have an address that is already a Shaman - Yeeter Shamans require that the DAO already exists, so this is a bit of a "chicken and egg" situation - When DAO exists: select Shaman templates and we'll add to the DAO - When being created, it has to be a type of Shaman that has to be summoned - Will eventually need verified Shamans - Address and permissions, but would want to allow for metadata. These could be separate from the initial Summoner flow - Determine sensible default: do we want to lock Shamans? - Set admin, manager, governor locks -> separate initialization - This would remove some of the v3 flexibility if we default to this -- since Shamans can't be unlocked *ever* we may not want to lock by default - Option to lock up front, but not default it - Will need to be very explicit that they won't be able to use a Shaman after locking it - May not want to worry about this upfront -- can we create a solid Summoner that is flexible - 3 new initialization actions: Lock Admin, Lock Manager, Lock Governor - - Other Notes - There will need to be an approval step when adding an existing safe - Would we want to push this to a Gnosis Safe app? - Generally, keep the initial Summoning flow UX straight forward and can always enhance later (boosts as an example) - Will need a Summoning Flow that allows for *bringing your own Gnosis Safe* - similar to launching a safe minion? approve module in the UI - link to the safe for approval? - how does Dework handle this - Pattern for advanced rollout (importing) - This component is used throughout the design, so we could use this in our component library and shared utils - Web 3 Recipes - Difficult for one site to direct users through steps -- videos do a good job here and allow for explanations throughout - This is something we should be mindful of as we're thinking about composition ### Additional Considerations - Fidelity of Designs (running & testing) - Can we abstract away the design/fidelity when we are RAGING? - Focus more on Modularity & Functionality - High Fidelity UX Design and Spec - Get Raging 😡 ## Moloch UI (Core) ### Enabling Flexible Nav (component library) - Giving developers a toolkit where they can use the navigation (npm package) ##### Playing with Activity on the Event List (Timeline) Alpha version of the component library should contain the core components that we **need** to operate our DAOs ### Core DAO UI - **What is the RageApp for the Core UI** 👇 - Proposals - ***Major Focus*** - Vault - Boosts - Members - List of read only data for the initial stage - Begin with read only and make more interactive over time - Settings (read-only for now) - Questions: - Do we want a Vault List? - Start with base rage quittable Vault and expand from there **Where is the Marketplace!!!?** - ~ next 3 months (no MVP - ALPHA) ### Component Library Concerns - If one component changes the state of another component - How to manage sharing state between components in the library? - Wrapper components - How to manage stateful components in the library? - Typically leverage stateless components in the library ## Hub - Main utility is list of DAO data - Start with list and enrich with more data - Add Ceramic profiles - Being able to act on all proposals will be a core feature - 1) List - Enrich with data over time - Delegate action soon after - 2) Proposals feed - Transactions lego - Transfer UIs (in v2) pull from DAO context layer (and now will be a Redux layer) - Populate from proposal data - Proposal on Core UI and on Hub is the same thing - Will need to work on base SDK or Redux will pass data in same format - Alternatively, get data right from proposal itself - How much of the Hub and Explore is a shared app? How much is it DAOhaus? - Ranking based on user value -- user gets more value if it shows *all their DAOs not just Moloch DAOs* - An Explorer is much more valuable if it explores all DAOs not just Moloch DAOs - Do token DAOs have this explorability since they're not on a DAO platform? Is there something that they share? - How would we be able to surface this data if they're not all on a platform? - Would we need to do DAO by DAO fetches or is there a programmatic way to do this? - Worth waiting for the EIP that Isaac and MetaGov are working on - Adds common functions to get all DAO data (members, consitution, proposals, etc) - Early stages right now - Badges: - Display earned badges (issued by DAOhaus or others offering credentialing) ## Boosts - Where do Boosts fit in? - Goveranance Layer? Treasury Layer? - Standardize what goes where - How can we leverage the Safe UI around Treasury type things? - Could be Boost specific: Governance related Boosts may slot into the Moloch Core UI -