Real-Time & Historical Blockchain Data with Custom State Modeling
Run EasyLayer self-hosted apps, build custom state models, and stream both historical and real-time blockchain events into your own systems
import { bootstrap } from '@easylayer/bitcoin-crawler';import Model from './model.ts';bootstrap({Models: [Model],rpc: true,ws: true}).catch(error => console.error(error));
import { BasicEvent, EventBasePayload, Model, Block } from '@easylayer/bitcoin-crawler';export class CustomEvent<T extends EventBasePayload> extends BasicEvent<T> {}; // Define your custom eventexport default class CustomModel extends Model { // Create your modelconstructor() {super('uniq-model-id'); // This ID will be used to fetch events and state}public async parseBlock({ block }: { block: Block }) {} // Maps custom events from block - user defines which data they needprivate onCustomEvent({ payload }: CustomEvent) {} // Updates model state when custom event occurs}
- Self-Hosted Infrastructure
- Custom State Modelling
- Real-Time & Historical Data
- Flexible Transport Layer
- Automatic Reorganization
- Multi-Chain Support
Take full control of your infrastructure with our self-hosted solution. Deploy and manage your nodes with complete autonomy.
Define precise state models for specific addresses or smart contracts, eliminating the need to store the entire blockchain state.
Access both real-time blockchain events through subscriptions and historical data with our comprehensive data access layer.
Choose from multiple transport protocols including RPC, WebSocket, IPC, and TCP to match your specific integration needs.
Built-in handling of blockchain reorganizations ensures data consistency and reliability across all supported networks.
Comprehensive support for Bitcoin, its forks, and all EVM-compatible networks including Ethereum and its derivatives.
How does it work? 🧐
Define your state Model
to transform on‑chain data into domain events, configure your Event Store
(PostgreSQL or SQLite) and blockchain self Node
or provider. EasyLayer will handle everything else automatically.
Use Transport
to get your domain state object at any block height or subscribe to real-time events with guaranteed at‑least‑once delivery, and replay historical events from any blockchain height for recovery, auditing and full transparency.

Not sure where to begin?
Browse our examples to see EasyLayer in action and gather ideas for your next project.
Bitcoin One Address Balance ✅
A simple example of how to monitor a bitcoin wallet balance

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
Frequently asked questions
For anything not covered here, join our Forum!