Skip to main content

What triggers a subscription update

A subscription receives new data as each block's data arrives in the stream, when the data matches the conditions of the query. Subscriptions are not re-queried from the database, and they are not delayed to wait for the chain to decide on a block.

Abandoned blocks in subscriptions​

A subscription delivers a block as soon as it is produced, before the chain has decided on it. A block of a fork that is later abandoned is delivered like any other, and the message is not recalled. This affects a small share of rows on chains such as Solana and Ethereum. If your application must process only blocks that stay on the chain:

  • treat recent data as provisional for a few seconds; or
  • on Solana, re-check with a query on the real-time dataset: select_blocks: branches lists the abandoned blocks, and select_blocks: trunk leaves them out (see Select Blocks).

trigger_on​

The trigger_on argument (all, head, head_updates, branches_updates) is accepted for compatibility. It does not change which messages a subscription delivers: every value delivers every block. Leave it out.

Checked on 7 November 2026 against wss://streaming.bitquery.io/graphql: six Ethereum Blocks subscriptions run side by side, one without the argument and one for each value, received the same blocks in the same order. Any other value, such as block, is rejected. The argument exists only on subscriptions; a query with trigger_on is rejected with Unknown argument "trigger_on".

Build with Bitquery

Ready to run this in production?

Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.