Anno Solanae · an orbital clock for the chain

Know exactly when the wheel turns.

EpochWheel reads the live Solana cluster and tells you when the current epoch ends, when stake changes take effect, and when rewards land — then drops the moment straight into your calendar.

Epoch—
Turned—
Next boundary in—
Live epoch astrolabe An astrolabe whose golden pointer shows how far through the current Solana epoch the network is. The inner verdigris hand sweeps once per leader rotation of four slots. · PRIMA · SECUNDA · TERTIA · QUARTA · QUINTA · SEXTA · SEPTIMA · OCTAVA · NONA · DECIMA · EPOCH —

Reading the cluster…

The Orrery — live epoch clock

Polled from public Solana RPC every 10 seconds. Between polls the slot counter is interpolated from the measured slot time and labelled as an estimate.

Epoch — ends in about

--days --hours --min --sec

Projected boundary: —

Project with:
Current slot
—
absolute
Slot in epoch
—
of 432,000
Slots remaining
—
until boundary
Avg slot time · 1 h
—
from perf samples
Avg slot time · epoch
—
since epoch start
Epoch started
—
block time of first slot
Transactions / sec
—
last minute, all txs
Inflation (annual)
—
getInflationRate

Slot time, last 12 hours

Each point is one 60-second performance sample: seconds ÷ slots. The dashed line is the 12-hour average. Higher = slower slots = later epoch end.

The Almanac — projected epoch calendar

Future boundaries are projections: remaining slots × the chosen slot-time basis. The further out, the wider the error band. Times shown in your local zone (—).

The .ics file is generated in your browser; nothing is sent anywhere. Re-download closer to the date for a tighter estimate.

Projected start times for upcoming Solana epochs
EpochFirst slotProjected start (local)UTC± bandIn
Waiting for live data…

Stake action planner

Pick what you're about to do. EpochWheel tells you which boundary it rides on.

—

Per-epoch reward sketch formula · example

Not live yields — a transparent formula you control. Reward per epoch ≈ stake × APY × epochDays ÷ 365.

—

APY here is your assumption (it depends on total staked share, validator performance, commission and MEV tips, which this page does not fetch). The epoch length uses the live projection.

How the wheel is read

Four public RPC calls, no keys, no wallet, no server of ours.

  1. 1 · Where are we?

    getEpochInfo returns the epoch number, the absolute slot, the slot index inside the epoch and the epoch size (432,000 slots on mainnet).

  2. 2 · How fast is it turning?

    getRecentPerformanceSamples(720) gives up to 12 hours of 60-second samples. Seconds ÷ slots = the real, measured slot time — never an assumed constant.

  3. 3 · When did this epoch start?

    getBlockTime on the epoch's first slot gives the real start timestamp, so we can measure this epoch's own average slot time — not just a guess.

  4. 4 · Project & schedule

    Remaining slots × slot time = time to the boundary. Future epochs add 432,000 slots each. Your browser builds the .ics file locally.

What the wheel is good for

Epoch boundaries quietly govern a lot of Solana life.

Timing a stake

Delegation activates at the next boundary. Staking an hour before it versus an hour after it can mean a whole epoch of difference in when rewards start accruing.

Planning an unstake

Deactivated stake cools down at the boundary and is only withdrawable once fully inactive. Know the date before you promise funds to anyone.

Watching rewards land

Inflation rewards are calculated for the finished epoch and distributed at the start of the next one. Check your stake account just after the boundary.

Validator operations

Leader schedules are fixed per epoch. Operators plan restarts, upgrades and commission changes around boundaries; delegators watch for commission edits right before them.

LST & DeFi rhythm

Liquid-staking tokens typically update their exchange rate once per epoch, and some protocols run epoch-based crank jobs. The boundary is when those numbers move.

Reading network health

Spikes in slot time mean skipped or slow slots. The 12-hour chart shows congestion and leader trouble as bumps long before an epoch runs late.

A field guide to Solana time

Slots, epochs and the stake calendar, explained without hand-waving.

Slots: the tick of the clock

A slot is a short window in which one designated validator — the leader — may produce a block. Solana was long described as targeting about 400 ms per slot; the live measurement on this page currently reads — per slot, so always trust the measured value over the textbook one. Each leader gets four consecutive slots before the next takes over (you can see it in getSlotLeaders), which is why the small verdigris hand on the astrolabe spins once every four slots.

Slots are numbered forever upward. If a leader is offline or too slow, its slot is skipped: the slot number still advances, but no block exists for it. Because the clock is driven by time-based ticks rather than by block arrival, the real duration of a slot wobbles minute to minute. Measured slot time is the single most important input to any epoch countdown — which is why EpochWheel measures it three ways.

Epochs: the turn of the wheel

An epoch on mainnet is exactly 432,000 slots. Its wall-clock length is simply 432,000 × slot time: at the classic 400 ms that would be 2.0 days, while at the pace measured right now it is about — days. Small changes matter: 10 ms per slot is 72 minutes per epoch. Epoch n always begins at slot n × 432,000, which is why the almanac can name every future first slot with certainty while the time remains an estimate.

The leader schedule for each epoch is derived from stake weights captured a full epoch earlier, so every validator knows its slots in advance.

The stake calendar

Stake changes are batched at boundaries. When you delegate, the stake account enters activating and starts earning from the next epoch. When you deactivate, it becomes deactivating and stops earning at the next boundary; once fully inactive you may withdraw. Network-wide, only a limited fraction of total stake (currently 9% per epoch) can warm up or cool down in a single epoch, so during very large stake movements some accounts take more than one epoch.

Rewards for epoch n are computed from the vote credits validators earned in it and paid at the start of epoch n + 1. Solana now spreads that payout over the first blocks of the new epoch ("partitioned rewards"), so balances can update a little after the boundary rather than in the very first slot.

Inflation, in one table

New SOL issued to stakers follows a published schedule: it began at 8% per year and shrinks by 15% of itself annually (the taper) until it reaches a long-term floor of 1.5%. The live figure above comes from getInflationRate; the schedule from getInflationGovernor.

Inflation schedule parameters
Initial rate—
Annual taper—
Terminal rate—
Current rate—

Staking APY is higher than inflation because rewards go only to the staked share of supply, then commission is deducted. That's why the reward sketch asks you for an APY instead of pretending to know it.

Annotated: the life of a delegation

  1. Epoch N, any slotYou sign a delegate instruction. Stake account: activating. Earns nothing yet.
  2. Boundary N → N+1Stake becomes active (subject to the network warm-up limit). Earning starts.
  3. Boundary N+1 → N+2Rewards for epoch N+1 are calculated and paid during the opening blocks of N+2.
  4. Epoch M, any slotYou sign deactivate. Stake: deactivating. Still earns through epoch M.
  5. Boundary M → M+1Stake becomes inactive (subject to cool-down limit). You can now withdraw.

Questions at the observatory

Limits & honesty

  • Projections, not promises. Every future time is remaining slots × an average slot time. The ± band is a simple ±3% of the remaining duration — a sanity range, not a statistical guarantee.
  • One public node. Data comes from solana-rpc.publicnode.com, a shared free endpoint. It can lag, rate-limit or fail; the page shows a retry message when it does and polls no faster than every 10 seconds.
  • Short memory. That node prunes old blocks (~1.5 days), so if the current epoch's first block has been pruned the start time is estimated instead and labelled as such.
  • No yields fetched. Inflation is live; APY in the reward sketch is your input. Stake warm-up/cool-down limits can delay activation beyond one boundary during heavy stake movement.
  • Interpolated ticker. Between polls the slot number advances by estimate (marked "est."). It snaps back to the real value at each poll.
  • Sources: Solana JSON-RPC methods getEpochInfo, getRecentPerformanceSamples, getBlockTime, getInflationRate, getInflationGovernor.