---
tags: v3, connect wallet, dragons
---
# v3 Connect Wallet Sync (4/25/22)
## Overview
This feature will be used in nearly all (if not all) of our user-facing apps. We're going to build this out and then eventually consider if we want this to break off into a `haus/features-ui` package that is for fully built out components with functionality.
[Figma Link to the Design and Spec Notes](https://www.figma.com/file/9lCwprCNaoAmUDmiMQpFEA/DAOhaus-v3?node-id=3120%3A16017)
## Goals
- Align on the Connect Wallet designs and scope
- Create user stories using Gherkin
- Create the component cards for any that aren't already made
- Check the status of the Button Jord was working on
- Scaffold the `features-ui` package
- Jord to build out some of the UI components
- Keating to build out functionality while building Hub
- Sam to work on the data needs
- `haus/dao-data`
### Functionality
States:
- Not connected
- Connected to unsupported network
- hub flavor = netowrk daohaus doesn't support
- dao flavor = network doesn't match the dao in context
- Connected to supported network
- Network unavailable
- If connected to a network we don't support (Hub Context)
- If connected to a network we don't support (DAO Context)
- Switch to Gnosis
### Components
[Figma Link to the Design and Spec Notes](https://www.figma.com/file/9lCwprCNaoAmUDmiMQpFEA/DAOhaus-v3?node-id=3120%3A16017)
Button
[figma](https://www.figma.com/file/R1a1bwODnzCHHHw0EJALAU/DAOhaus-v3-Pattern-Library-(In-Progress)?node-id=67%3A1122)
DropdownMenu
DropdownButton
- Woth building this now?
- User Name (in Dropdown)
- Pull from Ceramic from the set username?
- Fallback to ENS (if set)
- If no ENS, use truncated address
- Data needs:
- Address data
- User ENS
- Ceramic fetch
- User Avatar (in Dropdown)
- Fallback to Blockie if not set?
- Is there something else besides Blockie that we'd want to use?
- Check out Blockie alternatives (look to Smart Invoice)
- Where does this come from, Ceramic?
- Data needs:
- Address data (for blockie)
- Ceramic fetch
- Chain connected
-
- Address
- If on Mainnet AND ENS, show ENS
- If on Mainnet AND without ENS, show truncated address
- If on non-Mainnet always show truncated address
- Functionality:
- Link out to block explorer for the connected network
- Data needs:
- Address
- ENS
- Chain info
- Connected to chain
- Connected to Chain (shortname)
- Disconnect Button
- If connected, show this as a Disconnect
- There will possibly be navigation in the DropDown
- May need to support Global Nav links as well
- Wrong Network: "Switch to Gnosis" Button
- When clicked, this prompts network change in MetaMask
- Unsupported Network: "Network Unavailable" Button
- When clicked, open a dropdown with all available networks
- Data needs (for the network component):
- Need list of available networks
- Current DAO network
- MenuButton
- https://www.figma.com/file/R1a1bwODnzCHHHw0EJALAU/DAOhaus-v3-Pattern-Library-(In-Progress)?node-id=81%3A1668
- Takes in Menu elements that can be styled however
## Questions
- Are we going to save the user's data or do the fetching within the component?
- Should we cache the user's data (ENS, Ceramic, etc)
- They'll need the data across all of the app, so we'd want this in a state provider
- Can be flexible and allow for independent fetching too
- Prop structure for the Connect Wallet:
- Passing in Networks, do we default to DAOhaus Networks if user doesn't pass something in
- If doesn't receive address from state -> component will fetch
- Structure for the inner HTML on the Button itself (what can be passed in -- icon/avatar, name/user info)
- Do we use `quiver`?
- How do we handle our state store?
- How would we use a single state store?
- May not want to use Redux due to needing more than more than 1 state store