@attestate/crawler
A JavaScript library for retrieving on-chain storage and generating data derivatives.
Modular: Extract, Transform and Load stage separation makes composing simple components into complex workflows possible. Stages are reunnable to recover errors.
Embedded: Unlike Graph Protocol, Attestate’s Crawler does not have a separate server process. It writes directly to LMDB, an embedded database that can be read-from thread-safely at any time.
Batteries-included: Support for Ethereum, IPFS, Arweave, GraphQL and rate-limit pooling for Infura and Alchemy.
Attestate’s Crawler is created to build a web3 of peer to peer applications.
Comparison
Compare Attestate’s crawler with the Graph Protocol using the table below.
Trait  | 
Attestate Crawler  | 
Graph Protocol  | 
|---|---|---|
Embeddable  | 
✓ (Run as your app)  | 
✘ (Runs as a network)  | 
Output Formats  | 
CSV, JSON, LMDB  | 
GraphQL  | 
Web2 support  | 
HTTP, JSON-RPC, GraphQL  | 
Partial  | 
Free  | 
✓  | 
✘ (tokens required)  | 
Complexity  | 
A few JS files  | 
Big code base  | 
Censorship-resistant  | 
✓  | 
|
Customizable  | 
✓ (Compose & implement custom strategies)  | 
✓ (Query many subgraphs)  | 
License  | 
GPL-3  | 
Apache 2.0/MIT  | 
Replicate data  | 
✓  | 
✓  | 
Derive data  | 
✓  | 
Multi-graph app  | 
For a more in-depth discussion of uses cases, visit the use cases site.
Features
Rerunnable crawls using Extract, Transform and Load stage separation
Fast: GB/s extraction from Ethereum (co-located Erigon)
Thread-safe reads with LMDB
Rate-limiting support for Infura & Alchemy
Efficient: Minimized network calls through separation of concerns
No token launch, no miners, no fees: Just a community FOSS GPL3 project
Support for Ethereum JSON-RPC, GraphQL, IPFS, Arweave
Production-ready & unit-tested
Warning
We’re currently actively working on these documents. They’re still far from complete!
Strategies
Table of Contents
Concepts