Hi there,
This is my first contribution, apologies if I is is slightly out of scope.
I was recently onboarded to the DAOStar initiative in the scope of the Aragon project (@nivida and Michael Heuer) and I found a couple of topics that I would like to gather your feedback from, as they may affect other DAO tooling as well.
Standardised Multi endpoint URL’s
Talking about a DAO API, it seems unavoidable to deal with centralized services. But at the same time, DAO’s are also likely to pin static metadata through IPFS or similar. Centralized + decentralized.
If the value behind daoURI()
or any JSON URI field is interpreted at the will of the implementer, there’s a risk that some DAO details can be browsed on one platform but not on another one. What’s the common intuition about endpoints?
-
https://service.net/file.json
(no integrity check) ipfs://ipns/<ipns-name>/meta.json
ipfs://ipfs/<cid>/meta.json
I Vocdoni we went a bit further back in 2018 and drafted a simple solution that could inspire some standardisation on the DAO API side. Example of an on-chain URL:
ipfs://ipns/<ipns-name>/meta.json,ipfs://ipfs/<cid>,https://server-fallback.net/meta.json!<expected-hash>
- Split the URL by commas
,
- Try to resolve from left to right
- If the https endpoint is fetched, hash the data and compare it to the value after the
!
bang symbol (optional)
I would be glad to get your feedback.
Multiple types of membership
Another topic where I’d like your feedback is about the fact that some DAO’s may have more than one membership model in parallel.
Example:
- A group of wallets on a multisig can approve Action 1 at any time
- A massive group of ERC20 (weighted) holders can approve Action 2 after a two-week vote
- People with a valid ZK proof based on off-chain data can vote to approve Action 3
There may be cases in which a flat list of members doesn’t accurately represent de definition of the membership. In some cases it may not even be possible to generate a deterministic list of wallets.
Does this scenario echo with someone else?
Thank you!