# Solana WebSocket

Follow the accounts and signatures your application watches.

[\[ REQUEST A TRIAL \]](https://telegram.me/supanode_tgs)[Explore subscriptions](https://supanode.xyz/services/solana/websocket#fit)

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](https://supanode.xyz/services/solana/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](https://supanode.xyz/services/solana/rpc).

## Events and shared-plan restrictions.

Compare the supported subscriptions and shared-plan restrictions below. For higher-volume streaming, [explore gRPC](https://supanode.xyz/services/solana/grpc).

| Subscription | Delivered to your app | Scope on shared plans |
| --- | --- | --- |
| `accountSubscribe` | Changes to one account's state. | One subscription per account. |
| `signatureSubscribe` | A transaction signature reaches your chosen commitment. | One-shot. Removed after its notification. |
| `logsSubscribe` | Transaction logs matching your filter. | Mention filter required; all-transaction logs are blocked. |
| `programSubscribe` | Account changes for a program you follow. | A `dataSize` or `memcmp` filter is required. |
| `slotSubscribe`  <br>`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.

[\[ REQUEST A TRIAL \]](https://telegram.me/supanode_tgs)[Documentation](https://supanode.xyz/docs/solana/rpc/overview)

### 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.

| Bundle | Concurrent  <br>WS connections | Subscriptions  <br>per connection | Total subscriptions  <br>per plan | RPS  <br>budget |
| --- | --- | --- | --- | --- |
| STARTER | 10 | 100 | 1,000 | 15 |
| FOCUS | 20 | 100 | 5,000 | 25 |
| BUILD | 30 | 100 | 5,000 | 200 |
| GROW | 40 | 500 | 10,000 | 300 |
| PROFESSIONAL | 70 | 1,000 | 25,000 | 500 |

**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.

[Full Bundle comparison ↗](https://supanode.xyz/docs/solana/pricing/plans)[WebSocket limits ↗](https://supanode.xyz/docs/solana/websocket/limits)[Need custom capacity? Dedicated →](https://supanode.xyz/services/solana/dedicated-node)

[Compare all Bundle prices and quotas](https://supanode.xyz/pricing/solana#bundles)

## 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 · illustrativeCopy

```
# 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.

[TypeScript, Rust & Python examples ↗](https://supanode.xyz/docs/solana/websocket/examples)[Authentication guide ↗](https://supanode.xyz/docs/solana/authentication)

### Try your listener  
on a real workload.

[\[ REQUEST A TRIAL \]](https://telegram.me/supanode_tgs)[Ask support ↗](https://telegram.me/supanode_tgs)

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](https://telegram.me/supanode_tgs) before depending on them. See [current restrictions](https://supanode.xyz/docs/solana/websocket/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](https://supanode.xyz/services/solana/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.

---
Source: https://supanode.xyz/services/solana/websocket
