Skip to main content
LaserStream’s notifyOn filter lets a gRPC account subscription skip updates for accounts that a transaction write-locked but never wrote to. The same filter is available on the WebSocket accountSubscribe and programSubscribe methods — see notifyOn Filtering over WebSocket.

The problem: write locks generate duplicate updates

On Solana, the validator emits an account update for every account a transaction write-locks — even when no instruction actually wrote to the account, so its lamports and data are unchanged. For busy accounts, that means a steady stream of duplicate “nothing changed” notifications that consume bandwidth without carrying new information.

Filter modes

notifyOn takes one of two values: Two details worth knowing:
  • A write of identical data still counts as a write and is delivered. write filters out lock-only touches, not writes that happen to leave the same bytes. In practice these identical-data writes are rare — under 5% of updates in most cases.
  • The updates write drops are exact duplicates of state you already received. If you rely on updates as a “this account was locked by a transaction” signal (e.g., activity tracking), stay on lock.
Subscriptions that omit the field behave exactly as before, so it’s safe to add to an existing filter.

Use it in LaserStream gRPC

Set notifyOn on an accounts filter in your SubscribeRequest:
In the Rust SDK, set notify_on: NotifyOn::Write as i32. At the wire level this is the notify_on field of SubscribeRequestFilterAccounts (proto tag 31), with enum values NOTIFY_ON_LOCK (0, the default) and NOTIFY_ON_WRITE (1). See the Subscribe Request reference for every accounts filter field. Over gRPC, notifyOn is a Helius extension available through the Helius LaserStream SDK — stock Yellowstone clients don’t expose the field.

Subscribe Request Reference

Every gRPC accounts filter field, including notifyOn.

notifyOn Filtering (WebSocket)

The same notifyOn field on accountSubscribe and programSubscribe.

Account Subscriptions Guide

Filtering strategies and runnable account-monitoring examples over gRPC.

Token Account (ATA) Filtering

Match transactions touching the token accounts a wallet owns.