# app.daohaus.club v2 Data
1. diagram of each app domain
- app/api/subgraphs
2. outline data sources for each
## Web app data sources

### Inputs
#### 1. RPC
- Contract calls and transactions
#### 2. data.daohaus api
- read/write dao metadata
- general metadata
- boost/playlist data
- minion vault data
- read cached token data
- price, symbols
- endpoints that wrap other apis that require auth secrets
- pinata temp key
- discord/discourse
#### 3. block explorer apis
- fetch abis for minion form builder
- fetch native balances for minions
#### 4. TheGraph
- daohaus supergraph
- 1 per netowrk
- indexes all moloch and factory contract activity
- minion factories
- escrow minion per network
- daohaus stats
- 1 per network
- moloch and factory data shaped for bank chart and history (in vault section)
- daohaus boosts graph
- 1 per network
- boost specific mappings (transmutation/wrap and zap)
- ens
- 1 subgraph
- ens reverse lookup on mainnet
- nft subgraphs
- 2 per network (721 and 1155)
- used to populate nft forms
- boost specific
- superfluid, snapshot, poap
- shaman subgraph
- only used in bolt on so far
#### 5. boost specific apis
- Mintgate
- Supefluid graph
- Snapshot graph
- Discord/discourse (wrapped in daohaus api)
- Rarible
#### 6. Ceramic
- read/write user profile data
- 3box/idx
#### 7. Other apis
- pinata/ipfs to pin images and display ipfs docs
- gnosis api to validate safe minion setup
- error log?
- is this still used?
- do we want this?
- maybe remove or really hook it up
## Api data sources/storage

#### 1. RPC
- validate signatures for writing dao data
- make contract calls for balances and nft data for minion vaults
#### 2. block explorer api
- etherscan variants, blockscout variants
- gets token data by address for minion vault tokens/balances/history
#### 3. subgraphs
- most jobs/api endpoints use these to get graph data for whatever is needed with the job
- minion lists
- member lists
- proposals
- daos
- ect...
#### 4. wrapped apis
- discord boost activation
- check if a channel is available and bot can access
- discourse boost
- creates forum channel on activation
- creates post on new proposal submission
#### 5. coingecko api
- token list + price data for all token in guildbanks
- token lists + price data for minion vaults
#### 6. covalent api
- gets token data by address for minion vault tokens/balances/history
- nft data for minions
- kovan,mainnet,polygon,arbitrum only
#### 7. s3 buckets
** top priority to replace**
- jobs run on intervals that aggregate data and put in json docs in s3 buckets
- dao metadata pulled from airtable - merges daa meta, boost data, audit logs data, allies data, playlist data
- dao guildbank token list pulled from subgraphs and hydrated with current token price and data
- dao minion vault data pulled from subgraphs, hydrated with and various apis and formatted
#### 8. airtable
** top priority to replace**
###### input
- new dao registration creates dao metadata record
- editing dao metadata updates metadata record
- adding a boost adds boost record + updates dao metadata/playlist data
- update boost settings updates a boost record + dao metadata/playist data
###### output
- jobs dumping data to s3 pull this data
#### 8. api endpoints used by web app
/dao/{id}
- get all metadata for a single dao by contract address from s3
/dao/slug/{slug}
- get all metadata for a single dao by slug
- not used
/dao/update
- put to handle adding a new dao and udpating dao metadata on an existing dao
/dao/boost
- post to add a boost and update boost settings
/dao/ipfs-key
- post to get pinata one time upload key
/dao/discord-status/{channelId}
- wrap discord api and checks to see if a discord channel is set up for haus bot
/dao/discourse-topics/{categoryId}
- was added to pull discourse posts
- not used
/dao/discourse-topic
- post to create new discourse forum post for a proposal
/dao/get-utc
- server time
- not used
/dao/haus/circulating-supply
- coingecko uses this
- might be helpful when we put haus in the app
/dao/vaults
- post with an array of minion addresses in the body
- returns all minion vault data from s3
/dao/vaults/{id}
- gets vault data for a single minion vault by minion address
/dao/refresh-vault
- put to trigger a vault refresh job and s3 dump with a single minion vault or dao address
/dao-tokens
- gets all hydrated token data for dao vault tokens
- name, symbol, current usd price
## TheGraph data sources

#### 1.-7. Moloch factory contracts & Minion factory contracts
- data source mapping on the factory contract for each moloch/minion version
- single summon event to create moloch entities and register a mooloch template with the moloch address
- template mappings
- mapping for all events on the moloch/minion contract take event data and create/update entities
#### 8. Escrow minion contracts
- single escrow minion contract on each network
- data source mapping for escrow minion events to add update entity data
#### 9.-12. Stats graph moloch factory contracts
- stats graph tracks historical token balance movements in guildbanks mostly used in bank charts
- similar factory/template pattern as above
#### 13.-15. Boost graph contracts
- available for boost specific mappings
- wrap n zap factory
- tracks new wrap n zaps and maps them to a moloch address
- transmutation factory
- not used anymore
#### 16.-17. Shamans graph
- will be used to watch all shaman factories
- wraps shaman factory contracts and creates entites and templates for mappings on shaman contract themselves
- currently have a v2.5 sage minion shaman and the yeeter shaman
{"metaMigratedAt":"2023-06-16T17:19:14.597Z","metaMigratedFrom":"YAML","title":"app.daohaus.club v2 Data","breaks":true,"contributors":"[{\"id\":\"09d0c4f6-76f1-40bf-9588-bc9c33801104\",\"add\":9753,\"del\":3816}]"}