Skip to main content

Records

Records are the fundamental unit for calculating Streams API usage. What counts as a record depends on the chain — see the chain-specific sections below. Each record costs 10 Compute Units (CUs). The x-records-charged header in webhook responses shows the exact record count for that delivery.
Only webhooks with confirmed: true incur charges. Unconfirmed webhooks (confirmed: false) have x-records-charged: 0 and are included.
For each match, you receive two webhooks:
  1. Unconfirmed — sent when the transaction is included in a block.
  2. Confirmed — sent once the block is considered final (charged).
Across all chains, the unconfirmed (confirmed: false) delivery is sent when the matching transaction is first included in a block (or slot, on Solana). The confirmed (confirmed: true) delivery is sent after the chain’s reorg-safety threshold has passed — see Supported Chains. Only the confirmed delivery is charged.

What Counts as a Record

A record on EVM is one of the following:
  • A native transaction (txs)
  • A log event (logs)
  • An internal transaction (txsInternal)
The total record count for a webhook equals the sum of all three: txs + logs + txsInternal.

Records by transaction type

The number of records charged varies depending on transaction complexity:

Decoded logs are included

Moralis automatically decodes standardized contract events at no additional cost. These do not count as records:
  • erc20Transfers
  • erc20Approvals
  • nftTransfers
  • nftApprovals

Monitoring Your Usage

Use the Get Stats endpoint to track your consumption.
The stats endpoint returns:
  • totalLogsProcessed
  • totalTxsProcessed
  • totalTxsInternalProcessed
Sum these values to determine total records consumed during your billing period.

Plan Limits

For details on CU allocations, throughput limits, and plan comparisons, visit the Moralis Pricing Page.

Free Trial

Moralis doesn’t have a self-serve free plan. To try it before you subscribe, request a free trial and the team will reach out.