Streams Billing & API Credit Pricing | Quicknode Docs

Streams Billing & API Credit Pricing

Overview

Streams uses an 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:

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.

API Credits Calculator

Network0G0G GalileoAbstractAbstract TestnetArbitrum NovaArbitrum OneArbitrum SepoliaArc TestnetAultAult TestnetAvalanche C-ChainAvalanche FujiB3B3 SepoliaBaseBase SepoliaBerachainBerachain BepoliaBitcoinBitcoin CashBitcoin Cash TestnetBitcoin Testnet4BlastBlast SepoliaBNB Smart ChainBNB Smart Chain TestnetCeloCyberCyber SepoliaDATADATA AeneidDogecoinEthereumEthereum HoodiEthereum SepoliaFantomFlareFlare TestnetFlowFlow TestnetFluent TestnetFraxtalGnosisGravity AlphaHederaHedera TestnetHemiHemi TestnetHyperliquid EVMHyperliquid Evm TestnetHyperliquid HypercoreImmutable zkEVMImmutable zkEVM TestnetInjectiveInjective TestnetInkInk SepoliaJapan Open ChainKaiaKaia TestnetKatanaLineaLiskLitecoinLitecoin TestnetMantleMantle SepoliaMegaethMoca TestnetModeMonadMonad TestnetMorphMorph HoodiOptimismOptimism SepoliaPeaqPlasmaPlasma TestnetPolygon AmoyPolygon PoSRobinhoodRobinhood TestnetSahara TestnetScrollSeiSei TestnetSolanaSolana DevnetSolana TestnetSoneiumSonicStellarStellar TestnetTempoTempo TestnetTronUnichainUnichain SepoliaVanaVana MokshaWorldchainWorldchain SepoliaX LayerX Layer TestnetXRP LedgerXRP Ledger TestnetXRPL EVMXRPL EVM TestnetzkSync ErazkSync Era SepoliaZora

Dataset TypeBlockBlock with ReceiptsTransactionsLogsReceiptsDebug TraceBlock with Receipts + Debug TraceTrace BlockBlock with Receipts + Trace BlockBlock headers and metadata • 20x credit multiplier

Tip Streaming (Monthly)

4,320,000credits/month

Based on 216,000 blocks per month

Backfill (Total)

518,464,120credits

Based on 25,923,206 total blocks available

Note: The values shown are estimates. Actual usage may vary based on block production. If you're signed in to your Quicknode account, this page automatically reflects your account's plan and pricing model for the most accurate calculation.

Understanding the Metrics

The calculator displays three key metrics to help estimate your Streams usage.

Metric Description Example
Credit Multiplier The number of API credits consumed per block. This value is determined by the blockchain network and dataset type. A 20× multiplier means each block consumes 20 credits.
For example, processing 1,000 blocks consumes 20,000 credits.
Tip Streaming (Monthly) The ongoing cost to stream newly produced blocks in real time.
Formula: Monthly Blocks × Multiplier = Monthly Credits
Ethereum produces ~`216,000blocks/month. <br> With a20×multiplier:216,000 × 20 = 4,320,000` credits/month
Backfill (Total) The one-time cost to stream all historical blocks from genesis to the current block height.
Formula: Current Block Height × Multiplier = Backfill Credits
Ethereum has 24,227,108 total blocks.
With a 20× multiplier: 24,227,108 × 20 = 484,542,160 credits

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:

Credit efficiency:

Start with basic 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.

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 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. Filters can be written in Go or JavaScript — prefer Go, which only decodes the fields you declare and is significantly more performant and lighter on memory, especially on large payloads.

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:

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:

Frequently Asked Questions

Do Go or JavaScript filters reduce my credit consumption?▼

No, filters do not reduce the number of API credits consumed. Credits are calculated based on the number of blocks processed, regardless of filtering.

However, filters are valuable for shaping your data pipeline:

Optimize bandwidthControl storageStreamline processing

Am I charged for failed block deliveries or retries?▼

No, you are not charged for failed deliveries. You only pay for blocks that are successfully delivered to your destination.

If Streams cannot deliver a block due to destination errors (webhook down, database unavailable, etc.), it will retry delivery without charging additional credits. Once the delivery succeeds, the block is counted once.

Why do debug_trace and trace_block datasets cost more?▼

Trace datasets consume significantly more credits because they require:

Full transaction execution replayDetailed state trackingHigh computational costLarge data size

Can I start with backfill and transition to tip streaming mid-stream?▼

Yes!

Typical workflow:

  1. Create a stream with a specific block range for backfill (e.g., blocks 1,000,000 to 2,000,000)
  2. Stream completes the backfill and reaches 'Completed' state
  3. Create a new stream starting from block 2,000,000 with no end block
  4. This new stream continuously follows the chain tip

Credit usage:

• Backfill credits are consumed during historical processing • Ongoing tip streaming credits are consumed monthly

If I pause and resume a stream, do I pay for the blocks I missed?▼

You pay for the blocks which are actually processed by your stream. If you pause your stream, it will stop consuming API Credits. When you resume your stream, you can decide whether to resume where it left off or to resume from the latest block. If you choose to resume from the latest block you will not pay for the blocks that occurred while your stream was paused.

Do Streams and RPC share the same credit pool?▼

Yes, Streams and RPC consume API credits from the same shared credit pool.

How they're metered:

StreamsRPC

How do I calculate costs for multiple concurrent streams?▼

Credits are consumed independently for each stream. To calculate total cost:

Step 1: Calculate each stream individually Step 2: Add them together

Total: 237,600,000 credits/month

Consider consolidating to a single stream with broader datasets if possible.