Skip to content

Solana WebSocket

Follow the accounts and signatures your application watches.

JSON-RPC over WebSocketIllustrative
CLIENT →choose an account
{ "method": "accountSubscribe",
"params": ["YOUR_ACCOUNT_PUBKEY",
{"commitment": "confirmed"}] }
← SERVERsubscription accepted
{ "jsonrpc": "2.0", "id": 1,
"result": 147 }
← SERVERwhen the account changes
{ "method": "accountNotification",
"params": { …, "subscription": 147 } }

A listener for selected changes.

Watch selected accounts, transaction signatures and logs. One open connection pushes updates to your listener, wallet or dashboard.

Use WebSocket for selected accounts and signatures. For many streams, busy programs or full-state indexing, explore gRPC.

Subscribe once. Keep receiving.

The server returns a subscription ID. Notifications use that ID on the same connection until you unsubscribe or the connection ends. Signature subscriptions finish after one notification.

Authenticate →

Your Bundle token admits the connection at the Frankfurt endpoint.

Subscribe →

Send a method, filter and commitment. Save the returned ID.

Receive →

Process notifications for your active subscriptions.

Unsubscribe

Send the subscription ID to the matching unsubscribe method.

Pick your
commitment.

Most subscriptions accept a commitment. The documented default is finalized.

processed

Earlier local state. Treat it as provisional.

confirmed

Use when your app needs confirmed updates.

finalized

Use when your app needs finalized state.

Plan for reconnects. IDs belong to one connection. Reconnect with backoff, then resubscribe. Do not assume automatic replay of missed updates. Refresh account state or verify signature status over HTTP RPC.

Events and shared-plan restrictions.

Compare the supported subscriptions and shared-plan restrictions below. For higher-volume streaming, explore gRPC.

SubscriptionDelivered to your appScope on shared plans
accountSubscribeChanges to one account's state.One subscription per account.
signatureSubscribeA transaction signature reaches your chosen commitment.One-shot. Removed after its notification.
logsSubscribeTransaction logs matching your filter.Mention filter required; all-transaction logs are blocked.
programSubscribeAccount changes for a program you follow.A dataSize or memcmp filter is required.
slotSubscribe
rootSubscribe
New slots or new roots (finalized slots).Lightweight chain progress notifications.

Price & access.

Solana

RPC + WebSocket

STARTER · entry Bundle

For apps with a defined account list and modest request volume.

  • 15 RPS · 5 TPS
  • 10 WebSocket connections
  • 100 subscriptions / connection · 1,000 total
  • RPC + WebSocket
From $40
/ 30 days

Free trial up to 24h on request; our team confirms availability and setup. Solana wallet and USDC portal balance for purchase.

Bundle capacity by tier.

Prices buy the whole Solana Bundle for 30 days. STARTER includes RPC + WebSocket. FOCUS and higher add gRPC; GROW and PROFESSIONAL also include Frankfurt ShredStream Raw.

Separate limits apply at the same time; pricing uses no credits or compute units.
BundleConcurrent
WS connections
Subscriptions
per connection
Total subscriptions
per plan
RPS
budget
STARTER101001,00015
FOCUS201005,00025
BUILD301005,000200
GROW4050010,000300
PROFESSIONAL701,00025,000500

The total subscription cap applies across all connections. Keep connection count, subscriptions per connection and total subscriptions within their respective limits.

Subscribe and unsubscribe commands count against the RPS budget, alongside RPC requests. RPS is measured over a 10-second sliding window.

At the limit: extra connections are rejected; extra subscriptions return an error while existing subscriptions continue. Exceeding RPS returns 429. Every shared tier has a 10-minute idle timeout and requires ping intervals of 60 seconds or less.

Compare all Bundle prices and quotas

Open a connection. Recover state.

Frankfurt endpoint: wss://fra.sol.supanode.xyz:8900
The Bundle token also authenticates RPC and included gRPC access.

Server-side CLI · illustrative
# Install wscat first. Token stays in your environment.
wscat -c wss://fra.sol.supanode.xyz:8900 \
  -H "x-token: $SUPANODE_TOKEN"

# After connecting, send this JSON:
{"jsonrpc":"2.0","id":1,
 "method":"accountSubscribe",
 "params":["YOUR_ACCOUNT_PUBKEY",
 {"commitment":"confirmed","encoding":"base64"}]}

Illustrative CLI example. Replace the account placeholder and add your token when connecting.

Ping at least every 60 seconds.

A 30-60 second ping interval helps detect half-open sockets. The documented idle timeout is 10 minutes.

Back off, reconnect, resubscribe.

Start retry delay at 1 second and cap it at 30 seconds. Save subscription intent; returned IDs do not survive reconnects.

Recover your application state.

Re-read accounts after a gap. For a signature, fall back to getSignatureStatuses if the socket drops or a notification times out.

Building a browser app? A native browser WebSocket cannot set custom handshake headers. Docs show an api-key query option for clients such as web3.js, but URLs can enter logs. Your Bundle token grants quota access: keep it out of public client bundles. Use your backend to hold the token and relay the data your app needs.

Try your listener
on a real workload.

  1. Sign in with a Solana wallet.Open the Supanode portal.
  2. Pick a tier in Billing.Request a trial from our team, who confirms availability and setup for up to 24 hours. Paid periods use a USDC balance.
  3. Store your token.It is shown once on issue. Connect from your backend and test your subscriptions and recovery flow.

Before you connect.

Match the data volume, client and recovery behaviour to your application.

Which subscriptions are restricted?

Shared-plan Docs list blockSubscribe, voteSubscribe and slotsUpdatesSubscribe as blocked. logsSubscribe("all") and logsSubscribe("allWithVotes") are blocked, and program subscriptions need a dataSize or memcmp filter. Confirm subscription edge cases with support before depending on them. See current restrictions.

Does a notification mean my transaction succeeded?

Check the transaction error field in each signature notification to verify execution at the requested commitment. After sendTransaction accepts a transaction, use a signature subscription or RPC status lookup to track the result.

When should I move to gRPC?

Consider gRPC for many account or transaction streams, busy program feeds or full-state indexing. WebSocket is the lighter path for a selected set of things to watch. For recovery history, use RPC with its two-day replay window or gRPC with its 100-slot replay window.

Do I buy WebSocket separately?

WebSocket is included with STARTER, FOCUS, BUILD, GROW and PROFESSIONAL. Pick a Bundle by its connection, subscription and shared RPS limits. gRPC is included from FOCUS.

What happens when the trial ends?

Trial access ends at the agreed time. Purchase a paid 30-day Bundle in the portal to continue. Trials run for up to 24 hours on request, with availability and setup confirmed by our team. No credit card is required.