Skip to main content
Use Sender Max (min tip: 0.001 SOL) to act on Preconfirmations. A preconfirmation only pays off if you land your transaction first — Sender Max is the fastest way to do that. Build on Sender Max from the start to get the full benefit of Preconfirmations.

What is preconfSubscribe?

preconfSubscribe is a Helius WebSocket method that streams Preconfirmations — transactions delivered at the scheduled-transaction stage, before they are shredded. It is the lowest-latency transaction signal Helius offers. Access requires a Professional plan or higher — see Pricing.
The stream is not continuous. Coverage scales with the share of stake forwarding to Helius, so expect slots with no messages — handle these gaps gracefully. See Coverage.
preconfSubscribe is served from wss://beta.helius-rpc.com — the Helius Gatekeeper endpoint — rather than mainnet.helius-rpc.com. Authenticate with your API key as a query parameter.
The beta hostname refers to the Gatekeeper rollout, not the maturity of Preconfirmations. Preconfirmations launch on the Gatekeeper endpoint first; it will become the standard endpoint as Helius migrates traffic to Gatekeeper.

Subscribe

Send a JSON-RPC request with the preconfSubscribe method. The server responds with a subscription ID, then streams a notification for each scheduled transaction. Pass an optional filter as the first params element to receive only matching transactions; omit params to receive the full stream.

Subscribe Response

Store the result — it is the subscription ID you use to unsubscribe. After this acknowledgement, notifications stream as binary frames (see below).

Filtering

By default preconfSubscribe streams every scheduled transaction. To narrow the stream, pass a filter object as the first element of params. Filtering happens server-side, so you only pay for and receive the transactions you care about.
Every field is optional — a missing field means “no constraint” for that predicate, so an empty filter (or no params) matches every transaction. Filter rules:
  • All predicates are ANDed together, evaluated in the order regionIncludeaccountExcludeaccountRequiredaccountInclude.
  • Accounts are base58-encoded pubkeys. An invalid value returns JSON-RPC error -32602 (invalid params).
  • Each account list is capped at 500 entries.

Address lookup table (ALT) resolution

Account filters match more than the transaction’s static account keys — Helius resolves v0 address lookup tables server-side, so accountInclude, accountExclude, and accountRequired also match accounts a transaction loads through an ALT. This means you can filter on any account a transaction touches, even when it only appears behind a lookup table — no need to maintain ALT mappings or resolve tables yourself. Just pass the account’s pubkey and Helius handles the resolution before the filter is applied.

Location filtering

Use regionInclude to receive only transactions that originate from specific Helius regions. Pass one or more region codes; a transaction passes when its origin region matches any of them.
Valid region codes:
When regionInclude is set, transactions that don’t carry region information are dropped. An unrecognized region code returns JSON-RPC error -32602 (invalid params).

Notification payload

Notifications are delivered as binary WebSocket frames (not JSON). Each frame is a packed byte layout carrying a single scheduled transaction: Read the fields in order, then bincode-deserialize the remaining bytes into a VersionedTransaction to read instructions, accounts, and the signature.
Always read and check the version byte first. It is currently 1. If Helius needs to update the payload format, the version will increment — branch on it so your decoder keeps working across schema changes.
A preconfirmation is an early signal, not a guarantee. The transaction has not yet landed onchain and could still fail or be dropped. Confirm landing through standard commitment checks before treating it as final.

Example

Unsubscribing

To stop receiving notifications, call preconfUnsubscribe with the subscription ID returned from preconfSubscribe.

Pricing

Preconfirmations require a Professional plan or higher and cost 10 credits per message — one message per streamed transaction — billed from your plan. See Credits for details.
Preconfirmations is a new product and pricing is subject to change.

Preconfirmations Overview

What Preconfirmations are and where they sit in the validator pipeline.

transactionSubscribe

Stream confirmed-commitment transactions with rich filtering.