Solana epochs and priority fees, explained
Two pieces of Solana's plumbing show up constantly in practice: the epoch clock that decides when stake and rewards move, and the fee market that decides what it costs to land a transaction. Both are simpler than they look once you know what is actually being measured.
Slots, blocks and the epoch clock
Solana time is counted in slots of about 400 milliseconds, each an opportunity for the scheduled validator to produce a block. Slots are grouped into epochs of exactly 432,000 slots. At the nominal slot time that is two days, but real slot times drift with network conditions, so an epoch usually lands somewhere between two and two and a half days. Our epoch tracker estimates the boundary from live slot timing.
What actually happens at the boundary
The epoch boundary is Solana's settlement moment:
- Stake activates and deactivates. Delegate today and your stake earns nothing until the epoch rolls over. Undelegate and the SOL stays locked until the boundary too. This is the wait that surprises most first-time stakers.
- Rewards are paid. Inflation rewards for the finished epoch are calculated and credited in the first slots of the next one.
- LST exchange rates step up. Liquid staking tokens accrue value per epoch, which is why their rates move in stairs rather than a smooth curve. More on that in our staking yields guide.
- Leader schedules and some parameter changes take effect. Validator sets and feature activations key off epoch boundaries as well.
The two-part fee
Every Solana transaction pays a small base fee per signature. On top of that you can attach a priority fee, priced in micro-lamports per compute unit (CU). A micro-lamport is a millionth of a lamport, and a lamport is a billionth of a SOL, so the units are tiny: a 200,000 CU transaction bidding 10,000 micro-lamports per CU is offering 0.000002 SOL of tip.
The total tip is the CU price times the CU limit you request, not the CUs you actually use. Wallets that request bloated CU limits pay for the headroom whether they need it or not.
Fee markets are local, not global
The part most explanations miss: Solana's fee market is per account, not per network. Blocks cap how many compute units may touch any single account, so competition happens around hot accounts, a popular token pool at launch, a busy market during a volatile minute, while the rest of the chain stays cheap.
This is why "what is the priority fee right now" has no single answer. A transfer between two quiet wallets lands for next to nothing in the same block where transactions writing to a hot pool are bidding thousands of times more. Any fee gauge is really answering: expensive where, exactly? Our fee gauge samples the floor for blocks touching busy SOL-USDC pools, which is a reasonable stand-in for "an active corner of the market".
Reading fee percentiles sensibly
Fee dashboards, ours included, summarize recent per-block minimums as percentiles. Two habits make them useful:
- Treat them as floors, not quotes. The percentile says what recently sufficed, not what will land your transaction in the next block. During spikes the floor moves faster than any dashboard refreshes.
- Watch the zero share. When most blocks accepted zero-fee writes even to busy accounts, the network is quiet and tipping high is wasted money. When the zero share collapses, competition is on.
Why traders watch the epoch clock at all
Beyond stake logistics, the boundary matters because supply moves around it: unstaked SOL becomes liquid, rewards hit balances, and LST rates tick up. None of that dictates price, but it explains why unlock and unstake conversations always come with an epoch countdown attached. The countdown is on the epoch page, updating every 30 seconds.