stream-app - Block Streaming
stream-app delivers an ordered sequence of Bitcoin and Ethereum blocks via gRPC streaming - designed for bulk ingestion across large block ranges.
Use it when you need to:
- Backfill an indexer database from genesis or any arbitrary start height
- Populate a data warehouse with full chain history
- Process historical blocks for analytics or research
- Receive new confirmed blocks after reaching the chain tip
Do not use it for: raw mempool data, transaction broadcasting, address queries, or balance lookups. Those are separate apps.
How it works
- Authenticate with your
X-API-Key - Open a gRPC stream specifying
start_height(and optionalend_heightandformat) - Receive ordered blocks as a continuous stream
- After reaching the chain tip, new confirmed blocks arrive automatically
Confirmation depth
stream-app does not deliver blocks immediately as they are mined. It waits for a confirmation threshold:
| Network | Confirmation depth |
|---|---|
| Bitcoin | ~6 blocks |
| Ethereum | ~50 blocks |
This prevents delivering blocks that may be reorganized. Your indexer receives only finalized blocks.
Formats
| Format | Description | Best for |
|---|---|---|
json | Standard JSON, human-readable | Compatibility, debugging |
messagepack | Binary MessagePack encoding | High-volume ingestion, lower CPU |
MessagePack blocks are significantly smaller and faster to deserialize. For backfilling millions of blocks, MessagePack is recommended.
Resumability
If the connection drops, reconnect with the last successfully processed block_height. The stream resumes from that point without data loss.
Store your checkpoint (last processed height) in your database before committing each block.
Supported networks
| Network | Chain ID | Status |
|---|---|---|
| Bitcoin mainnet | - | Available |
| Ethereum mainnet | 1 | Available |
Additional networks are planned. Join the waitlist to be notified.
Transport
| Protocol | Notes |
|---|---|
| gRPC | Primary - bidirectional streaming, backpressure support |
| WebSocket | Fallback - for environments where gRPC is not available |
Billing
stream-app uses traffic-based billing - you are charged per GB of data delivered.
Plans:
- Free - limited GB per month, rate-limited
- PAYG / traffic - per GB, no minimum
- Subscription / traffic - fixed monthly GB allowance
Usage is tracked in real time in the dashboard.
Next steps
Related reading: How to Backfill a Bitcoin Indexer · gRPC vs JSON-RPC for Block Streaming