Overview
As of February 1, 2026, Streams uses a new API credit–based billing model, where usage is determined by the data processed by your streams.
Each stream consumes API credits based on the following factors:
- Network — The blockchain network you're streaming from
- Dataset — The type of data streamed (blocks, transactions, logs, receipts, traces, etc.)
- Blocks processed — The total number of blocks your Stream processes
This document explains how Streams API credits are calculated, how to use the calculator to estimate API credit usage for both tip streaming (ongoing data) and backfill (historical data), and best practices for optimizing stream configurations to manage costs effectively.
Your Streams billing model is determined at the account level. If you created any Streams before February 1, 2026, your account remains on the legacy GB-based billing model - including for any new Streams created after that date.
All existing Streams users will be automatically migrated to the new API credit–based billing model on March 1, 2026.
To migrate your account to the new API credit–based billing model before March 1st, contact support@quicknode.com or open a support ticket.
API Credits Calculator
Tip Streaming (Monthly)
Based on 216,000 blocks per month
Backfill (Total)
Block height unavailable
Understanding the Metrics
The calculator displays three key metrics to help estimate your Streams usage.
For example, processing 1,000 blocks consumes 20,000 credits.
Formula: Monthly Blocks × Multiplier = Monthly Credits216,000 blocks/month. With a
20× multiplier: 216,000 × 20 = 4,320,000 credits/monthFormula: Current Block Height × Multiplier = Backfill Credits24,227,108 total blocks. With a
20× multiplier: 24,227,108 × 20 = 484,542,160 creditsFor example, processing 1,000 blocks consumes 20,000 credits.
Formula: Monthly Blocks × Multiplier = Monthly Credits216,000 blocks/month. With a
20× multiplier: 216,000 × 20 = 4,320,000 credits/monthFormula: Current Block Height × Multiplier = Backfill Credits24,227,108 total blocks. With a
20× multiplier: 24,227,108 × 20 = 484,542,160 creditsMost EVM-compatible networks support full historical backfilling, though support varies by network. See Backfill Data by Ecosystem to check if your network is supported.
Optimizing Your Streams Usage
A few simple strategies can help you optimize your Streams configuration to manage API credit consumption effectively.
Consolidate Streams per Network
If you run multiple Streams on the same chain, consider combining them into a single Stream and using filters to target different events or contracts. This approach reduces overhead by processing each block once instead of multiple times, and optimizes credit usage by paying for blocks only once.
Example: Instead of running separate Streams for USDC transfers and USDT transfers on Ethereum, create one Stream with a filter that captures both token contracts.
Choose the Right Dataset
Different dataset types have different credit costs. Selecting the most specific dataset for your needs helps optimize credit usage.
Available dataset types:
- Basic datasets — Block, Transactions, Logs, Receipts
- Combined datasets — Block with Receipts
- Trace datasets — Debug Trace, Trace Block, Block with Receipts + Traces
Credit efficiency:
- Block uses approximately 50% fewer credits than Block with Receipts
- Basic datasets use significantly fewer credits than Trace datasets
Begin with basic datasets and upgrade to combined or trace datasets only when you need the additional data.
Trace datasets consume significantly more credits than basic datasets. Use them only when you need detailed execution data, internal transactions, or contract call hierarchies. For most use cases, basic or combined datasets are sufficient.
Learn more about the available dataset types and their structures.
Consider Quicknode Webhooks for Simple Use Cases
If you only need basic event notifications such as monitoring specific contract events or tracking your wallet, Webhooks may be a better fit than Streams. With Webhooks, you pay only for delivered payloads rather than blocks processed.
| Product | Best For | Billing Model |
|---|---|---|
| Streams | Indexing, high-volume monitoring, complex filtering, backfilling | Pay per block processed (consistent cost) |
| Webhooks | Real-time alerts, monitoring specific low-volume events | Pay per delivered payload (variable cost) |
Use JavaScript Filters
Filters let you customize your stream's payload before it reaches your destination. You can match specific patterns, transform data, or filter out irrelevant information.
While Filters do not reduce your Quicknode API credit usage because the system must still fetch and process the block to apply your filter logic, they help you optimize your downstream systems by ensuring you only receive the data you need:
- Bandwidth — Transfer only relevant data to your destination
- Storage — Store only the data you need
- Processing — Process only the data that matters to your application
Resources
Test Before Scaling
Always test your Stream configuration on a small range (e.g., 1,000 blocks) before triggering a massive backfill. This allows you to:
- Verify your filter logic
- Confirm the data structure matches your database schema
- Estimate the total credit cost for the full backfill
Frequently Asked Questions
We ❤️ Feedback!
If you have any feedback or questions about this documentation, let us know. We'd love to hear from you!