---
tags: Product
---
# Metadata Spike
### Goal
Implement a resuable solution for dapp metadata storage in Rabbithole and Daohaus.
### Deliverables
- Document/plan to move metadata off airtable into a more decentralized solution
- Data/system map
- Inputs/outputs
- List of other options for future exploration
- connext/xdai/ipfs custom solution
- filecoin?
- others?
- Ceramic/IDX code spike
### Initial questions
- DID indexing
- [DID provider](https://developers.ceramic.network/build/authentication/#did-provider-or-wallet)
- Can we get a provider for the moloch/smart contracts?
- ["multiple controllers is not currently supported FYI!"](https://discord.com/channels/682786569857662976/801537898826432542/808636056064360479)
- would need to limit to one controller
- would resemble [NFT DIDs](https://github.com/ceramicnetwork/CIP/blob/main/CIPs/CIP-94/CIP-94.md)
- each member would be a controller of the DID. (need to update that controller list with share updates?)
- minion/api function? oh yeah, better
- Intgegration with current API?
- I think the api might still serve some purpose
- data update lockdown to dao members?
- s3 dump of data collects/formats and makes it quick/easy for FE
- Should we plan to host a ceramic node?
- can be done outside this effort. probably worthwhile to contribute to the community if we can get some experience here
### Daohaus Now
Dao meta
- non-contract data related to a dao
- https://daohaus-metadata.s3.amazonaws.com/daoMeta.json
- INPUTS
- created/edited by dao members
- OUTPUT
- hub/explore/dao ui
- api hydrates with boost,allies data
- Boost activations/meta
- Boost 'table' - available boosts
- boostKey
- Activations 'table' - boost -> dao connection
- active,metadata json,relatedBoost,relatedDao
- INPUTS
- boosts managed manually by admins - no UI in app
- activations created/edited by dao members
- OUTPUT
- dao ui
- Allies
- Table to quickly manage both sides of ally relationship
- parent,child,networks,allyType
- INPUTS
- created/edited by dao members
- OUTPUT
- dao ui
- Ceramic solution
1) single daohaus user/controller on our server - we need to handle the key management serverside
2) server can check membership with the same mm signing method we use now
3) then this dh user/controller updates data
4) can also plug into the same api endpoints for serving data
PRO:
- progressive decentralization
- multiple controllers on the ceramic roadmap
- front end implementation is pretty seamless
CONS:
- all still serverside and loss of easy admin editing
- lift is all in the api code - will need a set of admin functions - ie) hide daos
User meta
- likes for hub and other future preferences
- INPUTS
- created/edited by user
- OUTPUT
- dao ui
- Ceramic solution
- idx assign did to user address
- auth flow for app to access data - requires a 2nd authentication
- maybe only con here. will need FE adjustments to add this to usercontexts
- read/write
Notification data
- richer boost data driving notification configuration
- think about this later - also dao scoped and admin needs
### RabbitHole
User meta (mostly soon, except social verification)
- social verification
- profile details
- store cross-chain IDs
- certifications
### nexts
1. data mapping
- input/outputs
- data model
2. tutorials/quick starts
- read and write
3. surface questions
### Materials
https://developers.idx.xyz/build/quick-start/
https://developers.ceramic.network/build/quick-start/
Demo at EthDenver '21
https://github.com/ceramicstudio/idx-assignment
https://www.youtube.com/watch?v=-kT_jMGCVR4
example app tutorial - old
https://blog.ceramic.network/how-to-build-a-simple-notes-app-with-idx/
Basic profile app
https://ceramic-form.on.fleek.co/
Awesome Ceramic list
https://github.com/ceramicnetwork/awesome
Get DID for ETH Address
https://github.com/ceramicstudio/idx-assignment/blob/master/src/app.ts#L31-L39
did resolver library
https://github.com/ceramicnetwork/did-resolver
dumb notes - temp
registry
- hold assets
- associate a burner dao that we can send stuff too
- mapping of address to hash
Front end interacts with the connext relayer
- that makes the xdai transaction
- need to fund relayer
Unknown
- how to verify membership in the xdai contract for another network dao
- relayer queries state?
- or metamask signing like functionality
- Admin functions?
- - relayer functions to hide daos?
- -
con
- state rent