Cherry
Python library for building blockchain data pipelines
Install / Use
/learn @steelcake/CherryREADME
cherry
Cherry is a python library for building blockchain data pipelines.
It is designed to make building production-ready blockchain data pipelines easy.
Getting Started
See getting started section of the docs.
Features
- Pure
pythonlibrary. Don't need yaml, SQL, toml etc. - High-level
datasetsAPI and flexible pipeline API. High-performance,low-costanduniformdata access. Ability to use advanced providers without platform lock-in.- Included functionality to
decode,validate,transformblockchain data. All implemented inrustfor performance. - Write transformations using
polars,pyarrow,datafusion,pandas,duckdbor any otherpyarrowcompatible library. Schema inferenceautomatically creates output tables.- Keep datasets fresh with
continuous ingestion. Parallelized, next batch of data is being fetched while your pre-processing function is running, while the database writes are being executed in parallel. Don't need to hand optimize anything.- Included library of transformations.
- Included functionality to implement
crash-resistance.
Data providers
| Provider | Ethereum (EVM) | Solana (SVM) | |---------------------|----------------|---------------| | HyperSync | ✅ | ❌ | | SQD | ✅ | ✅ |
Supported output formats
- ClickHouse
- Iceberg
- Deltalake
- DuckDB
- Arrow Datasets
- Parquet
Usage examples
Logging
Python code uses the standard logging module of python, so it can be configured according to python docs.
Set RUST_LOG environment variable according to env_logger docs in order to see logs from rust modules.
To run an example with trace level logging for rust modules:
RUST_LOG=trace uv run examples/path/to/my/example
Development
This repo uses uv for development.
- Format the code with
uv run ruff format - Lint the code with
uv run ruff check - Run type checks with
uv run pyright - Run the tests with
uv run pytest
Core libraries we use for ingesting/decoding/validating/transforming blockchain data are implemented in cherry-core repo.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Sponsors
<img src="https://steelcake.com/envio-logo.png" width="150px" /> <img src="https://steelcake.com/sqd-logo.png" width="165px" /> <img src="https://steelcake.com/space-operator-logo.webp" height="75px" />
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
108.4kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
347.6kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
