# DAO Membership
###### tags: `Project plan`

[toc]
##### Related Links
<!--
*add link to one pager (if one pager was done)*
-->
- [govrn.app](https://govrn.app/)
## 💡 Idea
### tl;dr
Import, join, and create DAOs on Govrn.
## 🧠Spec
### Import DAO
- Import 3rd party DAO
- Smart manage users based on DAO membership conditions (on chain event logs)
### Create DAO
Creating a DAO basically needs a list of addresses, the admins or power users, and to be Govrn native (only available at Govrn).
- Summoners initial admin set and they choose roles etc.
- Create & invite roles. similar to :point_down:
### Join DAO
- Off-chain members / secondary members
- finding, requesting, and joining DAOs
- Adding users by address (admin)
- Referring members (linking function)
### Goal
<!--
*1-2 lines on What problem are you solving and a proposed solution. Bullet points are fine*
Example:
- Problem: It's hard to understand context on what to give attestations too.
- Solution: Make the experience of going through contributions for attestations fun.
-->
- Problem: It's difficult to find other DAO's to join and it's hard to make a new DAO. Noramlly this is a manual process by Govrn or Govrn with partners.
- Solution: A one stop shop for spin up a DAO and log contributions.
### Scope
**Design**
- Create DAO. Forms, tool tips, initial state, start, middle, finish
- Explore DAO.
**Engineering**
- Implement create, join, and import DAO.
**Product**
- Wireframe the user flows for landing, wallet connect, and the three paths into DAOs.
### Completion Criteria
1. Design for three DAO paths
2. Implemented and tested memberships
3. Roll out to new DAOs with CBCE (hype mode)
- guild and token DAOs at v1
- Govrn-native DAOs (import and create) we'll run in parallel
### Timeline
- Design: 2 Weeks
- Build and Implementation: 2 Weeks
- QA: 1 Week
- Kickoff
#### Inspiration
## 📖 Bible
[Spreadsheet of roles and permissions](https://docs.google.com/spreadsheets/d/1YpBkibT3jpB88z2eqpX6ZabX6TAAyivG7RLxt2Ymq8Y/edit?usp=sharing)
[Figjam on user flows](https://www.figma.com/file/vVh1k3jfMP7zmIx1j7DrX6/DAO-User-Flows?node-id=0%3A1)
[how govrn thinks about DAOs](https://hackmd.io/2-940EXAQ6ulf2I4VHIyWQ?view#User-Journey-of-a-Govrn-DAO)
### Meeting Notes
[Creating Dao Feature-- product notes](/bucdAbAEQy2ScODmY6zhCQ)
[Product Palooza: Add DAO Visibility/selection For Users](/WJ91mkv9R8ywqLZlDNE3Zg)
https://hackmd.io/2-940EXAQ6ulf2I4VHIyWQ?view#User-Journey-of-a-Govrn-DAO
### Considerations
Strategy & Design considerations
- IA and flows between pages. where there is flexibility and where not.
- Import DAO
- Guild flow (is it oauth? are we populating a list of guild(s) )
- DAOs link on left side and then discovery or just create DAO page is linked from profile?
- Creating a DAO
- one page for
- Explore page
-
### Decisions Log
**1-19 **
- Aligned on three roles and the permisisons for each
- set up timeline for feature completeness
- some exploration and prototyping there to do
- set up the next DAO dashbaords specs and user journeys to explore
### Open Concerns
- [ ] [ticket for a table of roles](https://linear.app/govrn/issue/GOV-391/spreadsheet-of-roles-and-permissions) and pages by permisison level. this will become more useful over time.
User permissions:
- recruit:
- can submit contributions to a DAO (could probably attest, but not distinguishing currently)
- shows up in their reporting form
- See the Public DAO Dashboard
- Cannot attest (or see other contributions)
- member:
- can submit contributions to a DAO and attest to other contributions
- admin: can add members and other admins to DAO (future DAO configuration)
A user becomes this by:
- recruit: Self selected by user via the MembershipDAO Profile
- member: Admin adds via create or settings
- For a recruit to be promoted to a member, a DAO admin has to add them as a member
- This list can be updated continously
- Members can also be removed via admin DAO setting portal
- admin: another admin adds you
Spam Use Cases(for now):
- Contributor Spamming DAO with Contributions
- Admins Spamming Contirbutors by adding them to DAOs
- Fixing via a Opt In by the Contributor
- **THIS IS A REQUIRED FOR A FEATURE COMPLETE**
- The MVP requirements:
- As a User,
- I need to see all the DAOs I've been added to by an Admin
- So that I can choose which ones I opt in to
- As a User
- I need to to be able to opt in to the DAOs I've been added to
- So that I canchoose the DAOs I'm a part of
- As a User
- I need to be able to dismiss or ignore the ones I don't want to be added to
- So that I don't keep seeing DAOs I don't want to join.
- As a User,
- If I've already joined as a recruit, I won't be sent an Opt In Request
- So that I don't have the burden of being confused if Im asked to opt in after I've already joined as a recuirt (aka don't send opt in request if the user is already a recruit)
- User seeing too many DAOs in their dropdown (to avoid seeing all DAOs on Govrn)
- Recruit solves this
## Member Privilege Narratives
RECRUIT NARRATIVE
1. As a user, i become a recruit via the `Join DAO` module on the DAO Profile Page
2. Once I'm a DAO Recruit, I am able to:
- Recruits should see a Public DAO Dashboard (***THIS DOES NOT YET EXIST, BUT THIS IS SOMETHING WE WANT***)
- Could show a modified version of the current dashboard
- Report Contributions to the DAO
3. I'm not able to:
- Attest to Contributions of DAO members via the UI
4. If I wanted to become a member, I'd have to reach out to the DAO Admin and ask them to promote me
MEMBER NARRATIVE
1. As a user, I become a member by either:
- Being a recruit and having a DAO Admin add me to the DAO
- Being added to a DAO by a DAO Admin, and Opting In to the DAO via the Opt In Table
2. Once I'm a DAO Member, I am able to:
- See the DAO Dashboard
- Report Contributions to the DAO
- Attest to contributions via the UI
3. I'm not able to:
- Have access to the DAO Settings
- Add or remove other members
4. If I wanted to become an admin, I'd have to ask a DAO admin to add me
ADMIN NARRATIVE
1. As a user, I become a admin by:
- Creating the DAO
- Having a current Admin add me
2. Once I'm a Admin, I am able to:
- Do everything a member can
- Have access to DAO Settings
- Add or remove DAO members
3. I'm not able to:
- Can do eveything regarding that DAO
4. If I wanted to be promoted, nothing to be promoted too yet, you're the top.
## Future Ideas or Considerations
Join DAO Component:
- As a Admin
- I want to see when people add themselves a recruit
- So that I can see who is joinng and decide if we want to promote to member.
- **NOT IN SCOPE FOR RELEASE 1**
- explore UX on notifications
- As a DAO Recruit
- I want to be able to see a public version of the dashboard that doesn't show any "revealing" information of members
- So that I can see a full picture of the DAOs contributions
- Explore wireframe and data flows for what data is most desireable for a DAO to share