Introducing Ethdata, an open source Python package for analyzing smart contract data
We are proud to announce the release of Ethdata for Python developers and analysts. I have personally been using this tool for some months to make the task of grabbing on-chain data fast and simple.
Ethdata is a tool to help Python analysts and developers focus on analysis instead of pulling and decoding Ethereum data.
Benefits for Ethereum analysts
- Access historical Ethereum data without waiting to sync a node
- Pull on-chain data from BigQuery (fast) instead of querying a node (slow)
- View data in human-readable format instead of hex blobs
- Start analyzing data right away in Pandas, or export to Excel/CSV
Three lines of code
For simple data pulls, exporting to Excel (CSV) or JSON takes a few lines of code.
from ethdata import ethdata
compound = ethdata.Contract("0x3fda67f7583380e67ef93072294a7fac882fd7e7")
compound.event_logs.to_csv("event_logs.csv", index=False)
Ready to get started?
Just straight into our docs: Installing Ethdata
Why we developed Ethdata
We developed Ethdata to save ourselves time during smart contract analysis. Ethdata decodes smart contract activity in a few moments vs hours or days of manual effort.
Prior to developing Ethdata, we found that analysts were spending significant effort to transform on-chain data from something like:
0xb2e65de73007eef46316e4f18ab1f301b4d0e31aa56733387b469612f90894df
into something like:
MarketCreated
Now analysts can reveal useful data from smart contracts in seconds or minutes.
How Blocklytics uses Ethdata
We use Ethdata in Jupyter notebooks to run data analysis. We especially enjoying exploring Ethereum data in an interactive development and find the setup useful for collaborative work and sharing analysis with reproducible results.
We currently use Ethdata to carry out ongoing quality control checks on our private Ethereum datasets. We plan to continue maintaining the module as we also use it for delivering regular reports, including the Uniswap Report and FOAM Map Leaderboard.
As the number and quality of public crypto datasets grow, we hope to see Ethdata expanded (or forked) to simplify analysis of other networks.
Built on public infrastructure
Ethdata relies on three services considered part of the public infrastructure:
Service | Purpose |
---|---|
BigQuery | Serves historical Ethereum data from public datasets |
Etherscan | Pulls published contract ABIs to help decode data |
Infura | Queries public nodes for data that is not available from BigQuery |
A rising tide lifts all boats
We chose to open source this library under the MIT License with the hope other analysts and developers find it useful. We believe that what is good for the community is good for us.
Ultimately, there would be no data to analyze without development teams building applications and communities using those applications. We would not be analyzing Ethereum data without the public infrastructure and documentation to get us started. We are happy to share tools to help the community build.
Blocklytics is a for-profit data services company. And we're here to help if you get stuck or simply want us to take care of something (hello@blocklytics.org).
Not your node, not your data?
In closing, it's worth addressing the tradeoffs made using public infrastructure for data.
Relying on third-party services means trusting that their data is correct and their services will be reliable and available in the future. If you cannot afford this level of trust, we offer private datasets with service-level agreements or can help you set up your own on-prem solution.
Get in touch with us at hello@blocklytics.org