Own Your Blockchain Data - Live, Historical & Custom State Modeling
Run a self-hosted TypeScript apps with automatic chain reorg support - deliver live and historical blockchain events over HTTP, WS, or IPC, tailored to your custom state models.
import { bootstrap } from '@easylayer/evm-crawler';import Model from './model.ts';bootstrap({Models: [Model]}).catch(console.error);
import { BasicEvent, EventBasePayload, Model, Block } from '@easylayer/evm-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 & Private
- 2 RPC Calls per Block
- Reorg-Proof Consistency
- Live & Historical Streams
- Custom State Models
- Instant Block Snapshots
- Built-In API & Transports
- Bitcoin & EVM Ready
Deploy entirely on your own infrastructure: the EventStore supports SQLite for quick setups or PostgreSQL for production workloads. Your data never leaves your servers.
The crawler fetches full block data with just 2 RPC requests, keeping node load low and reducing operating costs.
Automatic fork handler rolls back and replays data for chain reorganisations of any depth-no manual intervention required.
Sync the entire chain history once and keep a continuous real-time feed through the same endpoint for dashboards or alerts.
Define only the states you need in a custom model file. Smaller datasets, faster queries, and lower storage overhead.
Request the exact state of any model at a specific block height with a single call-ideal.
REST for simplicity, WebSocket for event pushes, IPC for desktop apps. The server launches automatically-no hand-written controllers or middleware needed.
Bundled crawlers support Bitcoin forks and all EVM-compatible chains; extend to new networks with minimal configuration.
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 Top Addresses by Balances ✅
A simple example of how to monitor a bitcoin top addresses balances

Bitcoin Network Fees Analytic 🔗
A simple example of how to load a bitcoin network fees for analytic

EVM Gas Price Monitoring 🤖
A simple example of how to monitor a evm gas price

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!