A transaction is unavailable.
Retry getTransaction within a bounded budget. A null result does not prove there was no event. Keep unresolved signatures and the gap status.
Track Solana tokens, wallets and trades through your own data pipeline and alerts.
Monitoring can stop at a stored event, a dashboard update or an alert.
A stream carries observations. Your application turns them into records and decides what deserves a notification, including after a connection fails.
Store confirmed tx-A and its interpretation. Advance the checkpoint after the record is durable.
LIVEThe connection drops. Mark coverage as recovering; keep the last processed checkpoint.
OUTAGERestore subscriptions from your watchlist. Buffer new live observations while checking history.
LIVE + HISTORYRead address signatures and missing transactions. Repeated tx-A updates evidence without a new logical alert.
DEDUPLICATEClassify recovered tx-B. Close the bounded interval only when the checkpoint and required payloads are accounted for.
CHECK COVERAGEevent_gap_unknown visible. A fresh balance can repair the current view without recovering every missed event.Recover within the available window. Solana RPC provides 2 days of replay; gRPC provides 100 slots. Resume live data, reconcile the gap and validate recovered records.
Local deduplication is separate from delivery. A client outbox can avoid creating a second logical alert. Delivery retries can still reach a receiver twice; use an idempotency key where the destination supports it.
Follow on-chain activity, understand what changed, and turn it into useful data or alerts. Build the watchlist, interpretation and recovery around your own application.
An account change and a wallet trade need different evidence. Store the raw observation with its interpretation.
Scroll to compare the event types.
| Event type | What the feed gives you | What your application still does |
|---|---|---|
| Account update | Changed account data or lamports, with a slot. | Decode the account layout. Standard WS account updates do not identify the transaction that caused the change. |
| Balance change | A difference between snapshots or transaction pre/post balances. | Keep mint, decimals and account ownership. A balance delta alone does not establish a transfer or swap. |
| Token transfer | A transaction containing Token or Token-2022 instructions. | Identify source, destination, mint and amount, including inner instructions. A transfer can be one part of a larger operation. |
| Swap / trade | Transaction instructions, logs and available metadata. | Use a decoder for the specific program and version. Check transaction success and distinguish protocol legs from the wallet's net movement. |
A wallet's token balances live in token accounts. Each token account belongs to one mint and one owner authority. The program that owns the account is a different field.
Discover relevant token accounts, keep their addresses in your watchlist and refresh that list. Watching only the wallet address cannot establish coverage of every incoming token transfer.
New accounts between discovery runs remain a coverage gap until checked.
Solana RPC, WebSocket and filtered gRPC. Your application owns decoding, storage and notifications.
Account changes and address-filtered transaction logs, with HTTP reads for state and transaction details.
Yellowstone account or transaction streams when their filters fit your workload. RPC remains useful for reads and recovery checks.
Choose by watched addresses, subscription layout, activity and processing needs. Measure latency in your own deployment.
Supanode documents logsSubscribe with a mentions filter on shared WS. Solana accepts one address per mentions call. Shared all and allWithVotes log streams are blocked.
Validate the methods your listener needs during the trial.
WebSocket documentationThe documented WS connection authenticates with an x-token header at the handshake. This design uses a server-side listener. A browser dashboard reads from your backend.
Keep the Bundle token on your backend, out of browser bundles.
Authentication documentationFor an early implementation, RPC polling compares snapshots at your chosen interval. Use event streams when intermediate changes matter.
Sample client record for a recovered CP-Swap event, normalized by the application.
{
"network": "solana",
"signature": "tx-B",
"instruction_path": "3.1",
"event_ordinal": 0,
"type": "swap",
"decoder": "client:cp-swap",
"commitment": "confirmed",
"transaction_error": null,
"origin": "address_backfill",
"logical_alert": "queued",
"coverage": "bounded_interval_reconciled"
}Raydium CP-Swap source emits a SwapEvent before later token transfers finish. A log can exist in a failed transaction. Require a successful transaction before recording a successful trade.
Match the program, instruction path and event schema to the deployed version you support. Inspect token balances and fees separately to calculate the wallet's net receipt.
Use network + signature + instruction path + event ordinal for the logical event. Update its commitment and provenance separately. Repeated tx-A must not create another logical alert.
Illustrative successful reconciliation: tx-A was already stored; tx-B was recovered. If the required payload is unavailable, keep the gap unresolved instead.
The example follows a known wallet and two known token accounts. Discover additional token accounts to extend the watchlist.
Retry getTransaction within a bounded budget. A null result does not prove there was no event. Keep unresolved signatures and the gap status.
Keep the observation as unknown_semantics. Save evidence for a supported decoder; do not label the balance movement a trade.
processed can roll back. The example uses confirmed; use and track finalized if your application requires the strongest confirmation level.
Refresh owner-based discovery and update subscriptions. Check that account's retained history before claiming coverage for the missed interval.
Back off on rate limits and pace resubscription and history reads. Persist work before advancing the checkpoint. Show recovery backlog separately from live health.
Retain one logical alert and track delivery attempts. Reuse an idempotency key where the receiver supports it to handle repeated deliveries.
A single Bundle includes the interfaces in its tier for observing activity and producing alerts.
For a focused account list and a measured workload.
Request a free trial up to 24h; our team confirms availability and setup. Purchase with a Solana wallet and USDC portal balance.
For backends that need Yellowstone account or transaction events.
Request a free trial up to 24h; our team confirms availability and setup. Check subscription and watched-address limits.
STARTER is the entry tier for a bounded monitoring listener without gRPC. FOCUS adds gRPC when its stream filters fit your monitoring application. The RPC budgets above are measured in RPS units.
getTransaction and getTokenAccountsByOwner each cost 10 RPS units; getAccountInfo costs 2. Include discovery, reconnect bursts, retries and backfill. The budget uses a 10-second sliding window.
WS subscribe/unsubscribe calls also use RPS. Keep WS ping intervals at 60 seconds or less. gRPC filters have additional node and plan caps.
Processing, storage and notification delivery are your infrastructure costs. Read-only monitoring does not send a trade or create its transaction fees and tips.
Measure activity during the trial to choose a tier. Account for history depth and missing metadata when planning recovery.
Request a free trial up to 24 hours from our team; availability and setup are confirmed separately. Paid Bundle plans start in the portal with a Solana wallet. Choose a tier and keep the issued token on your server.
Check the linked documentation for method weights, subscription limits and setup.
Use Supanode streams and RPC reads to feed your monitoring application. Maintain a watchlist, decode the programs you support and apply your alert rules before sending notifications.
Solana RPC provides 2 days of replay; gRPC provides 100 slots. Reconcile the gap within the available window and validate recovered signatures and payloads. Keep an unresolved gap visible when the evidence is incomplete.
Choose and label the confirmation level your application needs. Processed can roll back; confirmed has supermajority votes; finalized is the strongest cluster confirmation level. This example uses confirmed.
Run the listener on your server, where the WS client can send the authentication header. Feed the browser dashboard through your backend and keep the Bundle token out of client code.
Token accounts have separate addresses. Discover accounts for the relevant token programs, maintain the watchlist and check new accounts. A wallet mention filter alone does not prove every incoming token transfer is covered.
No sender is required for this read-only workflow. If you later add a strategy that signs and submits a transaction, treat that as a separate execution path with its own controls, costs and confirmation checks.
Use the interface and program references below to build and validate your listener.