DAOchem is a solution in which on- and off-chain governance data sources react to produce a holistic view of DAO governance. We integrate data on smart contract parameters, voting activity, Twitter activity, and contributor sentiment to help DAO creators and contributors understand the governance landscape.
Are (on-chain) DAOs working right now? Are they achieving their stated goals, and how do members feel about their experience in the DAO?
- What governance systems are DAO members choosing to implement, with what "laws"?
- In what ways are DAO members participating (in measureable ways)? Does DAO member activity relate to the chosen systems?
- How satisfied are DAO members with their own experiences in the DAO and with the health/success of the DAO overall? How do these experiences relate to the chosen systems?
DAOs that have an on-chain component to their governance process often deploy their smart contracts through a platform like Arargon or DAOHaus. In these cases, the contract is created by the platform's factory contract. We are accessing the entire transaction history of these factory contracts using TrueBlocks and an archive node (generously provided by ArchiveNode.io, to pull out the parameters set at the time of deployment for each set of DAO governance smart contracts.
Twitter is a common way for a DAO to engage with its membership. We are using the Twitter API to acquire the follower counts and the contents and engagement of up to the 200 most recent tweets for DAOs with Twitter accounts. From these, we select those related to governance (based on keyword searchs) to guage how frequently the DAO communicates about its governance process and how engaged the DAO's followers are with these.
Quantitative data on DAO governance is useful, but ignores an important component of a DAO's operations: its contributors. Similar to how GlassDoor provides some context about what it's like to actually work at a company, we are deploying a short survey to understand how DAO contributors feel about, for example, whether the governance process is legitimate, or whether their contribution is valued.
DeepDAO generously provided us with a mapping of DAOs to their governance-related addresses, which we are using for data linking.
Through the Boardroom API, we obtained the proposal creation and voting activity of DAOs that used an on-chain voting mechanism or Snapshot. We also used this to assign categories to DAOs.
We referenced DAOHQ to assign categories to DAOs.
- Create a Python environment from
requirements.txt
. If you are usingpip
, make sure Python 3.9 is installed. If you are usingconda
, run the following commands:
conda create -n daochem python=3.9
conda activate daochem
pip install -r requirements.txt
This project uses TrueBlocks and an Ethereum archive node to get on-chain data on DAOs (e.g., factory contract transactions identifying new DAO addresses, transactions for known DAO addresses). If you do not have access to an archive node, either by running one locally (requires >2TB free memory and ~1 week of time to sync) or via a service (may costs $$), you will not be able to run this part of the code. DAOchem uses ArchiveNode.io, which offers free archive node access to Ethereum
As described in their documentation: "These instructions assume you can navigate directories with the command line and edit configuration files." We recommend adding both Go and TrueBlocks to PATH
by adding the following line at the end of ~/.profile
:
export PATH=$PATH:/usr/local/go/bin:$HOME/trueblocks-core/bin
. We also recommend running running chifra init --all
(or, if you are running your own node, chifra scrape
).