DEV Community

Cover image for Slots and Blocks on Solana — Why You Can’t Think Like EVM
decoder man
decoder man

Posted on

Slots and Blocks on Solana — Why You Can’t Think Like EVM

If you’re coming from EVM chains (Ethereum, Base, BSC, etc.), it’s very tempting to map Solana concepts 1:1 to what you already know.

That’s where a lot of misunderstandings start.

On Solana, slots and blocks are not the same thing — and treating them like Ethereum blocks will give you wrong assumptions about time, ordering, and data completeness.

Let’s break it down.

1. What Is a Slot on Solana?

  • A slot is a logical unit of time in Solana: ~ 400 ms per slot

  • Each slot has a designated leader

  • The leader may produce a block during that slot

  • Key point:
    - A slot does NOT guarantee a block.
    - Some slots are: Empty, Skipped, Or produce partial data that never becomes finalized

So:

Slot ≠ Block

2. What Is a Block on Solana?

A block only exists if the leader successfully produces one for that slot.

A Solana block:

  • Is associated with exactly one slot

  • Contains:
    - Transactions
    - PoH entries (hashes)

  • Has:
    - blockTime
    - blockHeight

  • But:

     - ❌ Not every slot has a block
     - ❌ Slot numbers are continuous, block heights are not
    

Sample slot without block
https://solscan.io/block/397551930

This already breaks a common EVM assumption.

3. Compare This to EVM Blocks

  • On Ethereum-style chains:

     - Time is organized by blocks
     - Each block:
             - Advances state
             - Has a parent
             - Has a timestamp
     - No concept of “empty time units”
     - Simplified EVM model:
    
             - time → block → state
    
  • Solana model is closer to:

     - time → slot → (maybe) block → state
    

4. Finality and Reorgs Feel Different

Another big mental shift:

  • EVM - Blocks may reorg - Finality is probabilistic (or epoch-based)
  • Solana
    - Slots are always advancing
    - Blocks can be:
    - Produced
    - Dropped
    - Replaced before finalization

     - This means:
             - You may see a block at a slot
             - Then later that block is no longer part of the finalized chain
             - If you index Solana data, you must care about commitment levels: processed, confirmed, finalized
    

5. Practical Implications for Data Builders

If you’re building analytics, indexers, or decoders:

❌ Common mistakes

  • Assuming every slot has a block
  • Using slot count as a proxy for time
  • Treating block height like Ethereum block number
  • Assuming monotonic, gapless blocks

✅ Correct mental model

  • Slots are the clock
  • Blocks are optional outputs
  • Finalized data matters more than “first seen” data
  • Slot-based APIs ≠ block-based APIs

6. TL;DR

  • Slot = time window
  • Block = optional result of a slot
  • Not every slot has a block
  • Solana ≠ fast Ethereum
  • Don’t port EVM assumptions into Solana

If you’re decoding or indexing Solana transactions, this distinction is not academic — it directly affects correctness.


Curious how others model slot-based data in their pipelines.
How do you handle skipped slots and block finality in practice? 👇


About txdecoder.xyz

Transaction decoding API — standardizing blockchain data into one unified, readable schema on Ethereum, Base, BSC, Solana

Website: https://txdecoder.xyz/
X: https://x.com/txdecoder_xyz
Telegram: https://t.me/txdecoder
Telegram channel: https://t.me/txdecoder_announcements
Blog: https://medium.com/@txdecoder

Top comments (0)