Hello! My name is Malcolm, I am an engineer @MessariCrypto
We’ve been working on a serious of subgraphs to cover OpenZeppelin Governor contracts and we built one for ENS as part of our product.
I wanted to share it in case it can be useful to anyone. We have built a standard schema across the OZ Governor contracts + modules being used. Via the subgraph, the governance data is much easier to make sense of and access.
Hosted Subgraph
Subgraph Entities
The subgraph covers a series of entities that we use ourselves internally but have built with the entire space in mind
Entities
Governance
– macro entity hosting aggregate information about token holders, delegates, proposals
GovernanceFramework
– OpenZeppelin framework-level information about contract/timelock address, vote delay/period, quorum
Proposal
– contains on-chain proposal data, granular vote data (vote count & weighted votes for / against / abstain), as well as framework level metadata at the time of the proposal for posterity
Vote
– captures information about each on-chain vote choice
Delegate
– contains delegate voting power, who they represent, their previous votes, how many times they’ve voted, and proposals they’ve been a part of
Any feedback is welcome on the schema and would love to know how (if at all) subgraphs are used by ENS
We are also working on creating React hooks to get data out of the subgraphs for easier consumption on FE. Curious if that would be helpful
Enjoy,
mxlcolm.eth