Sync Ethereum, BNB Chain, or Polygon block data into a Java or Spring backend with minimal code.
Index ERC-20 or ERC-721 token transfer events for an existing application.
Publish synced blockchain data as Kafka messages for downstream processing.
| wx5352/chainsync | autismdevelopment/autism-client | fal1winter/knowledge-rag-agent-platform | |
|---|---|---|---|
| Stars | 22 | 22 | 22 |
| Language | Java | Java | Java |
| Setup difficulty | moderate | hard | hard |
| Complexity | 3/5 | 3/5 | 5/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires JDK 21+, a Maven dependency, and access to RPC endpoints for the chains you want to sync.
chainsync is a library for Java and Spring backend applications that need to pull data from blockchains that work like Ethereum, such as Ethereum itself, BNB Chain, and Polygon. Blockchain data has some tricky properties: you need to keep track of where you left off if your program restarts, handle the case where the chain briefly forks and rewrites recent history, and cope with blockchain node providers that go down or rate limit you. chainsync is built to handle all of that so the developer only has to write the logic for what should happen when a new block of data arrives. With one shared API, it can connect to any of these chains through configuration alone, without writing separate code for each one. It keeps a durable record of its sync position so a restart continues from where it stopped rather than starting over or skipping data. It watches for chain reorganizations by checking each block's link to its parent, and rewinds and resynchronizes automatically when one is detected. It rotates between multiple node endpoints with retries and increasing wait times when a provider is unavailable, and it polls quickly when catching up on missed blocks but slows down once it is caught up to the current block. Out of the box it can decode common token transfer events for two widely used token standards. Where the synced data goes is flexible: it can write directly to a database through JDBC, publish each block as a message to Kafka, or hand off to a custom handler you write yourself. The author is explicit that this project is not trying to compete with high throughput blockchain indexing platforms, it aims instead to be the simplest way for an existing Java backend to consume this kind of data. Installation is through Maven Central or, as an alternative, JitPack. A Spring Boot starter module provides automatic configuration from a few lines of YAML, and there is also a way to use the library directly in plain Java without Spring. Building the project from source requires Java 21 or newer. It is released under the Apache License 2.0.
chainsync is a Java and Spring library that reliably syncs data from Ethereum-style blockchains, handling restarts, chain forks, and node failovers automatically.
Mainly Java. The stack also includes Java, Spring Boot, JDBC.
Apache License 2.0: use, modify, and distribute freely, including for commercial purposes, with attribution and a patent grant from contributors.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.