Solana network vitals, live

Watch the chain
take a breath.

ChainPulse is a read-only oscilloscope for the Solana network. Epoch progress and ETA, the slot and block height climbing in real time, and a slot-rate your browser measures itself — all read live and keyless from a Solana RPC. The trace above beats with every slot the network confirms.

Read-only concept. Epoch, slot and block height are live from a Solana RPC; SOL/USD is live from Jupiter. The slot-rate is client-observed — measured from slot deltas in your browser — and this is network tempo, not TPS and not validator data. Not financial advice.

Network pulse

The chain, beat by beat

Live network vitals, refreshed continuously. The slot and block height tick upward between reads using the observed tempo, then re-sync on every real RPC poll. The strip on the right pulses once per confirmed slot.

Slot height … absolute slot · live
Block height … confirmed blocks · live
Slot-rate … slots / sec · client-observed
Slot time … ms / slot · observed
Live pulse — slots/s
waiting for the first slot…

The slot-rate and slot-time are measured in your browser from the change in slot height between polls — a live, client-observed tempo, not a figure reported by the cluster. Solana targets roughly 400 ms per slot, so expect about 2.5 slots/s. This is network cadence, not transaction throughput (TPS), which this read-only proxy cannot compute.

The schedule

Epoch progress & ETA

A Solana epoch is a fixed run of slots. ChainPulse reads where the current epoch is with getEpochInfo and estimates the time left from the slots remaining at Solana's ~400 ms target. The ETA is a model built on live inputs.

… of epoch —
Slot in epoch…
Slots in epoch…
Slots remaining…
Est. time to next epoch…
Absolute slot…
Transaction count…

Epoch number, slot index, slots-in-epoch and absolute slot are live from getEpochInfo. The ETA is an estimate — slots remaining × ~0.4 s — and will drift when the network runs faster or slower than target. It is a transparent model, not a promise.

Observed tempo

Slot-rate, as your browser sees it

Every couple of seconds ChainPulse reads the current slot and divides the change by the elapsed time. The bars below are those live samples — a rolling window of how fast the chain has advanced since you opened this page.

Now…
Window avg…
Window peak…
Samples…
oldesttarget ≈ 2.5 slots/snewest

Each bar is one client-side measurement: Δslot ÷ Δtime between two getSlot reads. Short windows are noisy — a single slow fetch widens Δtime and dips a bar. Treat the window average as the honest read. Client-observed, not a cluster metric.

Under the hood

How ChainPulse reads the chain

Four steps. Three are live calls to a keyless, read-only RPC and to Jupiter; the fourth — the ETA and tempo — is a transparent model built on those live inputs and labelled wherever it appears.

  1. 01

    Read the epoch

    getEpochInfo returns the epoch, slot index, slots-in-epoch, absolute slot and block height in one call — the backbone of the dashboard.

    …

  2. 02

    Measure the tempo

    Every ~2 seconds getSlot is polled and the change is divided by elapsed time. That is the client-observed slot-rate driving the pulse.

    …

  3. 03

    Advance the heights

    Between polls the slot and block counters tick up at the observed rate so the numbers feel live, then snap back to the real value on each read.

    …

  4. 04

    Project the ETA

    Slots remaining × Solana's ~400 ms target gives an estimated time to the next epoch — a model, shown openly, not a guarantee.

    …

Straight answers

Questions

Is the slot-rate the network's real TPS?

No. Slot-rate is slots per second — how fast the chain's clock advances — measured in your browser from slot deltas. Transactions-per-second needs block transaction counts this read-only proxy doesn't serve, so ChainPulse deliberately shows cadence instead and labels it client-observed. Solana targets ~400 ms per slot, so a healthy read is around 2.5 slots/s.

Why does the slot-rate jump around?

Because it's a short-window client measurement. If one getSlot fetch is slow, the elapsed time widens and that bar dips; a fast catch-up read spikes it. The network itself is steadier than any single sample — the window average is the honest number.

Is the epoch ETA accurate?

It's an estimate. ChainPulse multiplies the slots remaining by Solana's ~400 ms slot target. When the network runs hot or cold the real time drifts from that figure, so treat the ETA as a transparent model, not a countdown you can set your watch by.

Is this validator or staking data?

No. ChainPulse is strictly network-level — epoch, slot, block height and tempo. It does not read validators, vote accounts or the cluster's node list, and makes no claims about any operator. It's a vitals monitor for the chain as a whole.

What happens when I connect a wallet?

Connecting is read-only. ChainPulse calls connect() to read your public balance and recent signatures through the same-origin RPC and nothing else. It never requests a transaction or a signature, holds no funds, and mints nothing.

Do you collect anything about me?

No accounts, no tracking, no cookies. Everything runs in your browser against public APIs and a read-only RPC proxy.

What this is, plainly

ChainPulse is a read-only concept that turns public Solana data into a live network-health oscilloscope. The epoch, slot and block reads are real and the SOL price is live; the slot-rate is a client-observed measurement and the epoch ETA is a transparent model. Nothing here connects a wallet for signing, places a trade, holds funds or launches a token. Not financial advice.