slotsUpdatesSubscribe
Last updated:
Where slotSubscribe emits one frame per processed
slot, slotsUpdatesSubscribe opens the hood: it streams a
slotsUpdatesNotification for every stage of a slot's life as the node
sees it. The type field names the stage — firstShredReceived (the first
piece of the leader's block arrived over the network), createdBank
(execution began), completed (all shreds received), frozen (the bank hash
was computed; a stats object reports transaction counts), dead (the slot
was abandoned — a skipped or failed block), optimisticConfirmation (a
supermajority of stake voted on it), and root (finalized). Each event
carries the slot, a nanosecond-scale timestamp from the node's clock, and
for createdBank the parent slot.
It takes no parameters, and it is a firehose: expect several events per slot,
i.e. ten-plus frames per second sustained. The audience is correspondingly
specialized — latency engineering and cluster observability rather than
application logic. Use it to measure block-propagation timing
(firstShredReceived → completed deltas), to detect skipped slots and
leader failures in real time via dead events, to trade on
optimisticConfirmation (which lands well before full finality), or to build
per-slot pipelines that need to distinguish "replayed" from "confirmed" from
"rooted" states precisely.
Handle it defensively. The method is flagged unstable in stock Solana:
event names and semantics can change between releases, and not every RPC
setup exposes it — Triport serves it on /ws/sol, but code written against
it is less portable than the stable families. Events describe the serving
node's pipeline, so timings differ between nodes, and during forks you will
see updates for slots that later die. There is no replay: a reconnect loses
the intervening events and you must resubscribe (session-scoped, as always).
If all you need is "a new slot happened" or "finality advanced", the far
cheaper slotSubscribe / rootSubscribe are the right
tools. Stop the stream with
slotsUpdatesUnsubscribe.
Parameters
This method takes no parameters.
Returns
| Field | Type |
|---|---|
| result | object |
Examples
curl https://triport.io/sol \
-X POST -H 'Content-Type: application/json' \
-H 'Authorization: Bearer <api-key>' \
-d '{"id":1,"method":"slotsUpdatesSubscribe","params":[],"jsonrpc":"2.0"}'const res = await fetch("https://triport.io/sol", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: "Bearer <api-key>" },
body: JSON.stringify({
"id": 1,
"method": "slotsUpdatesSubscribe",
"params": [],
"jsonrpc": "2.0"
}),
});
const data = await res.json();import requests
resp = requests.post(
"https://triport.io/sol",
headers={"Authorization": "Bearer <api-key>"},
json={"id":1,"method":"slotsUpdatesSubscribe","params":[],"jsonrpc":"2.0"},
)
print(resp.json())Usage
- Transport: WebSocket.
- Networks: mainnet, devnet, testnet.
- Credit cost: 1 per call.
FAQ
- What does slotsUpdatesSubscribe do?
- Subscribes to fine-grained slot lifecycle events — shreds received, bank created, frozen, dead, optimistically confirmed, rooted — for every slot the node observes.
- How many credits does slotsUpdatesSubscribe cost?
- slotsUpdatesSubscribe costs 1 credit(s) per call on Triport by default.
- Is slotsUpdatesSubscribe available over WebSocket?
- Yes, slotsUpdatesSubscribe supports WebSocket.