Public Beta. Preprocessed transactions are part of Helius’s Shred Delivery product family. They are available to any Professional plan or higher subscriber and are metered at 20 credits per 1 MB.On average, preprocessed transactions arrive ~8 ms faster than the
processed commitment level, at the cost of execution metadata (see tradeoffs below).processed commitment level on average.
This guide explains when to use preprocessed transactions, what data is available, and how to subscribe to them using the LaserStream SDKs (which also serve preprocessed transactions over the same gRPC connection).
Where preprocessed transactions sit in the lifecycle
In Solana’s architecture, transactions flow through several stages before becoming fully processed:- Shred Reception → Validator receives transaction shreds (data fragments). ← Helius’s raw shreds (UDP) are delivered here.
- Shred Decoding → Shreds are decoded into raw transactions. ← Preprocessed transactions available here.
- Transaction Execution → Transaction is executed by the runtime.
- Metadata Generation → Pre/post balances, logs, and error information are computed.
- Commitment → Transaction reaches processed/confirmed/finalized state. ← LaserStream gRPC and LaserStream WebSocket deliver here.
Best-effort Delivery Guarantees
Preprocessed transaction delivery is best-effort, not guaranteed. We target 99.99% delivery rate, but some transactions may be lost during:- Infrastructure updates and redeployments
- Network issues or validator connectivity problems
- Edge cases in shred decoding or processing
What data is available?
Preprocessed transactions include the complete transaction message but lack execution metadata:Available Data
- ✅ Transaction signature - Unique transaction identifier
- ✅ Account keys - All accounts referenced by the transaction
- ✅ Instructions - Complete instruction data and program calls
- ✅ Recent blockhash - Transaction expiration reference
- ✅ Signatures - All transaction signatures
- ✅ Is vote transaction - Whether this is a vote transaction
- ✅ Slot number - Which slot contained this transaction
Missing Data
- ❌ Transaction metadata - Token balances changes, pre/post balances, transaction status
- ❌ Transaction errors - We cannot determine if the transaction failed
- ❌ Inner instructions - Cross-program invocations (CPIs) are not included
- ❌ Log messages - Program logs are generated during execution
- ❌ Compute units consumed - Execution metrics unavailable
SDK Support and Version Requirements
Preprocessed transaction subscriptions are supported across all LaserStream SDKs:JavaScript/TypeScript
Version 0.2.8 or later
Rust
Version 0.1.5 or later
Go
Version 0.1.0 or later
Implementation Examples
JavaScript/TypeScript
The JavaScript SDK provides a dedicatedsubscribePreprocessed function with automatic reconnection:
Rust
The Rust SDK provides native performance:Go
The Go SDK provides idiomatic Go interfaces:Subscription Structure and Filtering
Request Structure
The preprocessed subscription request follows a similar structure to standard subscriptions but with a focused set of filters:Response Structure
Updates arrive with the complete transaction message and basic metadata:transaction.transaction field contains the complete Solana transaction structure including:
- Message - Account keys, instructions, recent blockhash
- Signatures - All transaction signatures
- Address table lookups - For versioned transactions
meta field containing execution results.