The visualisation above explores the development of protocol governance. The circles are proposals that have been put to vote. I have tried to filter out non executive proposals.
On the x-axis you see the development in time. On the y-axis you see the level of agreement. Proposals at the top have received near unanimous approval. Proposals in the bottom half have been rejected.
Most executive proposals have gone through various stages of soft governance, what may explain that the majority of proposals are approved with large majorities. The visualisation helps single out the cases in which this did not happen.
The data determining the size of the circles can be switched. Initially it represents the total value in USD of tokens backing the votes, at the time of the vote, which speaks of the financial power behind decisions. The other option sizes the circles according to the number of delegates, the number of distinct addresses that made a vote.
You can see that the protocols with proposals backed by a high value in USD are not the same protocols that consistently score high on participation of individual addresses.
When you click on circles, the aside panel will show a breakdown of the yes (white) and no (black) votes. The circles representing the single votes have been sized by the USD value of the tokens backing the vote. You can see a rough distribution of voting power on both sides.
So how do the protocols compare? After averaging value in USD and delegate count for the last 10 proposals for each protocol, the grid below takes shape. One quadrant is still empty ;)
Initially i thought out to use the Graph. For a few protocols i could find existing subgraphs. When i tried to unify these subgraphs into one, i realised that is not really what a subgraph should be doing. Separate subgraphs for the different protocols are much more flexible and resilient. I then found out many protocols had moved to snapshot.org, which offers a hybrid on chain, offchain solution for proposal generation and voting. I also needed to use ethers to fetch historical tokenprices. and timestamps for blocks. Bringing all these data from different sources together in a single structure is a tedious trial and error job, something i can do best with a node app and a mongo database. So, little decentralized technology was used. But, ... i am one person with a research task. Why would i want to decentralize that?
That said, governance protocols should eventually standardize their 'public records', so that someone with a task like me, would have an easy job. I would advocate for a complete record of proposal-data, including votes, balances and token-price in one single file or call. For decision making to become trustless transparency need to be frictionless.
things to expand upon
- Add more protocols & verify data
- Explore delegation
- Map voting blocks that abstain
- Map voting power distribution per protocol
Questions or suggestions can be sent to firstname.lastname@example.org