Solana shortened its own heartbeat on Friday. The network’s target slot time dropped from 300 milliseconds to 250, the third of four planned steps under SIMD-0525, a rollout that has walked the figure down from 400 milliseconds at genesis to 350 in August, then 300, and now this. The fourth step, to 200, is conditional on block-skip rates holding steady and has no mainnet activation date.
The coverage was careful. Decrypt noted in its second paragraph that this is not a capacity upgrade: each slot is now allowed less computation and less data, in rough proportion to how much shorter it got, so the chain processes the same overall load in smaller and more frequent pieces. The beneficiaries are applications that live on freshness, oracles and automated market makers, where a price feed stale by a few hundred milliseconds means a trade executes at the wrong number.
All correct. And then, several paragraphs down, came the sentence that should have been the headline. An epoch on Solana is fixed at 432,000 slots regardless of how long each one takes. So the expected epoch length has compressed from roughly 36 hours to about 30, and staking rewards and validator schedules run on epochs.
Nobody changed the epoch. The epoch changed.
TL;DR
- Solana’s target slot time fell from 300ms to 250ms on 19 September 2026, the third of four stages under SIMD-0525. It is a freshness upgrade, not a capacity one: each slot now carries proportionally less computation and less data.
- The buried consequence is that an epoch is defined as 432,000 slots, not as a number of hours, so it silently shrank from about 36 hours to about 30. At genesis it was 48. The number 432,000 has never been edited.
- A chain keeps two clocks, one counted in seconds and one counted in blocks. A slot-time change does not alter either clock. It alters the exchange rate between them, and every promise written in the wrong unit gets repriced without being rewritten.
- Finality is a third, separate thing: Solana’s 12.8-second figure is a wall-clock number, and the count of blocks inside it has risen roughly 60% since genesis. Anything that waits “N confirmations” is now waiting less time for the same number.
- Satoshie’s draws settle on Base, so this specific change does not touch us. The class of problem does, and the honest split is that a VRF proof is time-free while confirmation depth is not.
A chain keeps two clocks
Every blockchain maintains two measures of time and treats them as interchangeable right up until the moment they are not. The first is wall-clock: seconds, minutes, thirty-six hours. The second is structural: slots, blocks, epochs, confirmations. Humans write contracts and documentation in the first. Chains enforce them in the second.
A slot-time change does not speed up either clock. It changes the exchange rate between them. And because the conversion was never written down anywhere as a rate, nothing that depends on it appears to have changed at all. The epoch is still 432,000 slots. It was 432,000 slots yesterday. Nobody proposed altering it, nobody voted on it, no diff exists. It just quietly stopped being two days.
That is not a rounding error. At 400 milliseconds, 432,000 slots is precisely 48 hours. At 250, it is 30, and at the final stage it will be exactly 24. The accounting period governing when staking rewards land and when validator schedules turn over has lost 37.5% of its duration across four uncontroversial performance tweaks. Every step was announced as a latency improvement. None was announced as a change to the reward calendar, because in the unit the protocol actually uses, it was not one.
The asked half of this story is: did the chain get faster? The unasked half is: what else was measured in the thing you just redefined?
The same change has two different percentages
Even the headline number is slippery. Going from 300 milliseconds to 250 is a 16.7% cut in the interval. It is also a 20% increase in the rate, from 3.33 blocks per second to 4. Both are true, both describe one event, and they differ by a fifth because one is denominated in time-per-block and the other in blocks-per-time. Reporting picked the smaller figure. A marketing department would have picked the other.
That is the whole thesis in miniature. There is no neutral way to state a change to a unit, because the statement has to be made in some unit, and the unit decides what the change looks like. If that is true for a press release it is emphatically true for a smart contract, which does not get to pick its unit at the moment of enforcement. It picks one at deployment and then lives with it for years.
Confirmations are not seconds
Finality is a third quantity entirely, and Solana is attacking it in a separate project. Alpenglow, the consensus overhaul in testing, aims to cut the point at which a payment can no longer be reversed from a 12.8-second wait down to something closer to instant. Friday’s change did nothing to that number.
Which means Friday’s change did something quite specific to anyone counting blocks instead of seconds. A 12.8-second window contained 32 slots when slots were 400 milliseconds long. It contains about 51 of them now. The wall-clock safety is identical; the block-denominated safety is 60% cheaper to satisfy. If your integration waits a fixed number of confirmations before it treats a result as real, and you chose that number on a chain with different timing, then your margin has been shaved three times this year by upgrades you correctly ignored because they had nothing to do with you.
Nobody is being deceived here, and that is what makes it worth writing about. No villain, no undisclosed parameter, no misleading statement. The protocol behaved as specified, the change was published, the epoch consequence was even mentioned in the coverage. The harm vector, if it is one, is that a quantity can be constant and repriced at the same time, while our entire vocabulary for change is built around diffs.
What actually shrank in the leader window
One more figure deserves a second look. A validator holds the leader role, the temporary right to build blocks, for four slots in a row before handing off. At 250 milliseconds that control window falls from 1.2 seconds to a flat one second, which reads like a decentralisation win: less time for any single party in the driver’s seat.
But the number describing the power did not move. It is still four consecutive blocks. Whatever a leader can do with four blocks in a row, it can still do, in the same sequence, with the same discretion over ordering. What fell is the volume of flow passing through while it does so. That is a genuine improvement, but it is a quantitative palliative described in the grammar of a structural fix. The capability is denominated in blocks. Only the exposure is denominated in seconds.
What in your game is counted in blocks?
Here is the version of this that matters if you play anything on-chain, and I have not seen it asked anywhere.
Every provably fair page grades the mechanism. Server seed, client seed, nonce, hash commitment, published proof, verifier link. All of it answers one question: can the operator change the outcome? None of it answers a much duller question with the same power to cost you money, which is whether the numbers surrounding that outcome are counted in seconds or in blocks.
Go and look, because they are everywhere. Entries close at a block height. Anti-spam rules limit you to one entry per N blocks. A challenge period, a withdrawal delay, a cooldown after a win, a refund path that opens when randomness fails to arrive: all of these are natural to write as block counts, because a contract can read a block number and cannot read a clock. Chainlink VRF itself takes a requestConfirmations parameter, the number of block confirmations the oracle waits before it will fulfil a request. That is a safety margin, it is denominated in blocks, and the person who chose it was thinking in seconds.
So the unasked half for gaming is this: if the chain you are playing on halved its block time tomorrow, which of the guarantees on the fairness page would be worth half as much, and who would tell you? Not the operator, because from the operator’s side nothing changed. Not the contract, because from the contract’s side nothing changed. The fairness proof would verify perfectly, as it always does, because the proof was never about the part that moved.
Where Satoshie sits, honestly
Satoshie settles on Base, not Solana, so Friday’s change does not touch a single one of our draws. That is an accident of address, not a virtue, and claiming otherwise would be exactly the kind of thing this series exists to call out.
The narrow claim that survives is about which of our guarantees is time-free. A VRF proof is not rate-dependent: the randomness either verifies against the published key or it does not, and that boolean is identical whether blocks arrive every two seconds or every fifty milliseconds. The coordinator address is fixed in deployed code and readable before you stake. Escrow, resolution and payout happen in one transaction. Ticket odds are arithmetic over tickets minted, readable before purchase. None of that is a duration, so none of it can be quietly shortened by somebody tuning a performance parameter.
What is not time-free is settlement depth, and I am not going to pretend otherwise. Confirmation counts are block-denominated by nature. Base’s block time is a parameter chosen by its operator, not a law of physics, and if it changes then the seconds behind our block-counted numbers change with it. The correct response is not to claim immunity. It is to know which of your numbers are in which unit, and to say so out loud.
Three limits, then. First, a VRF proof settles randomness and nothing else: it is silent on whether a contract can be drained or a prize is funded. Second, Base’s sequencer is Coinbase-operated and not decentralised today, with soft confirmations that are a promise rather than finality and the real guarantee arriving via Ethereum. Third, this is not an argument against SIMD-0525. Shorter slots make on-chain gaming better, a rollout gated on block-skip rates is careful engineering, and disclosing the epoch consequence at all is more than most projects manage. The objection is not to the change. It is that a change can propagate into contracts whose authors were never part of the conversation, and arrive there carrying no notification whatsoever.
Three questions worth asking
- Which numbers in the game you are playing are counted in blocks, and which in seconds, and can you tell from the interface which is which?
- If the chain underneath halved its block time, which published guarantee would silently halve with it, and would anyone be obliged to announce that?
- Who has the authority to change the block time, and is it the same party that wrote the guarantee you are relying on?
A tower clock is a single escapement driving dozens of wheels, and every wheel is calibrated in teeth rather than in hours. Speed up the escapement and not one gear has been touched, not one tooth has been recut, and every dial in the building is now telling you something different. Solana adjusted its escapement on Friday, by fifty milliseconds, for entirely good reasons. Somewhere downstream, six hours went missing from a period nobody edited.


