πŸš€ EVM Crawler is live! Track Ethereum, BSC, Polygon and any EVM chain

Build a Self-Hosted Blockchain State Service

Point at a Bitcoin or EVM node. Get live, always-current on-chain state running on your own server.Every block updates your state automatically. Reorgs handled. Query via HTTP or WebSocket.Your data, your server, no subscription fees.

Works on/with
NodejsBitcoinEthereumBNB ChainPolygonArbitrumOptimismDogecoinLitecoinBitcoin Cash
import { bootstrap } from '@easylayer/bitcoin-crawler';
export const AddressUtxoWatcherModel = {
modelId: 'wallet-utxo-watcher',
state: { wallets: new Set(['1A1zP1...Na']), utxos: new Map() },
sources: {
async vout(ctx) { return { a: ctx.vout.scriptPubKey.addresses?.[0], k: ctx.tx.txid + ':' + ctx.vout.n, v: ctx.vout.value }; },
async vin(ctx) { return { k: ctx.vin.txid + ':' + ctx.vin.vout }; },
async block(ctx) { ctx.applyEvent('Deposit', ctx.block.height, { o: ctx.locals.vout, i: ctx.locals.vin }); },
},
reducers: {
Deposit(s, e) {
for (const x of e.payload.o || []) (s.utxos.get(x.a) || s.utxos.set(x.a, new Map()).get(x.a)).set(x.k, x.v);
for (const y of e.payload.i || []) for (const [a, bag] of s.utxos) if (bag.delete(y.k) && !bag.size) s.utxos.delete(a);
},
},
};
Custom Data Models

Tell the framework what on-chain state to track: wallet balances, contract events, UTXOs, anything your app needs. It reads every block, updates your state in real time, and handles chain reorgs automatically. You control the data structure and the server.

Learn more
Network Providers

Connect Bitcoin or EVM nodes via JSON-RPC, WebSocket, P2P, or ZMQ. Use QuickNode, Alchemy, or your own node. Just 2 RPC calls per Bitcoin block. Automatic failover between providers. Historical sync + real-time mode.

Learn more
Mempool Monitoring

Track unconfirmed transactions in real time before they hit blocks. Optional for Bitcoin and EVM crawlers. Essential for payment processors, wallets, and fee market analysis.

Learn more
API & Transports

Five built-in transports: HTTP, WebSocket, IPC (parent/child), Electron, and Browser. Real-time event streams and request–response queries. Use @easylayer/transport-sdk for a unified client API across all of them.

Learn more
Event Store & Databases

Event Sourcing out of the box: every state change is an immutable event. Query model state at any block height. Choose SQLite (dev/desktop), PostgreSQL (production), or IndexedDB (browser). Schema managed automatically.

Learn more
System Models

Built-in chain validation and mempool models work out of the box β€” subscribe to their events immediately. Automatic reorg detection and rollback regardless of reorg length. Network integrity checks configurable per deployment.

Learn more

How does it work? 🧐

Install the crawler package for your chain. Define what on-chain data your app needs to track. Point at a node or external provider. Run it.


The framework reads blocks from any height, keeps your state current on every new block, recovers from chain reorgs automatically, and serves your data over HTTP, WebSocket, or IPC. Everything runs on your server. Your data never leaves your infrastructure.

EasyLayer architecture diagram

Not sure where to begin?

Browse our examples to see EasyLayer in action and gather ideas for your next project.

System Examples β€” Getting Started πŸš€

Learn how to connect Bitcoin Crawler in different modes: HTTP RPC, P2P, ZMQ subscriptions, and various configurations.

easylayer profileeasylayer

Basic Wallet Watcher πŸ‘›

Track wallet balances β€” when funds arrive and when they leave. Simple UTXO monitoring for payment processors and wallets.

easylayer profileeasylayer

Advanced Wallet Watcher πŸ’Ž

Full wallet monitoring with mempool tracking β€” detect deposits, pending transactions, double-spend attempts.

easylayer profileeasylayer

Stay up to date πŸ“¬

Subscribe to get timely updates on new releases, bug fixes, and all the latest EasyLayer news.

⚑ Roadmap ⚑

From Idea and Concept to Implementation and Expansion

βœ… Released
  • @easylayer/bitcoin-crawler β€” Bitcoin and Bitcoin-like networks (BTC, BCH, LTC, DOGE)
  • @easylayer/evm-crawler β€” EVM-compatible networks (Ethereum, BSC, Polygon, L2)
  • @easylayer/transport-sdk β€” multi-transport client SDK
🚧 In Progress
  • Performance improvements for Bitcoin and EVM crawlers
  • Developer onboarding: collecting feedback, helping teams test and configure
  • Expanding documentation and examples
⏳ Coming Soon
  • @easylayer/solana-crawler
  • @easylayer/ton-crawler
  • @easylayer/tron-crawler

Frequently asked questions

For anything not covered here, join our Forum!

For teams

Building something big?

Get managed infrastructure, SQL & S3 read models, and direct support from the EasyLayer team.