How Ethereum finalises a block

Close to 900,000 validators, each with ETH at stake, take turns proposing a block every 12 seconds and vote on which chain is the right one. A block becomes final once two thirds of all stake has voted it in.

Read how it works

Click a step on the right, or use the arrow keys, to jump to it. Move your mouse to shift the view.

Just included

    pending transaction proposer, builder bid, new block attester, attestation justified checkpoint finalised transaction in the latest block this slot's proposer attestations packed into the block included but reverted, gas still paid finalised block
    Transaction types, by share of each block Waiting for the first block
    How this is counted

    Every transaction in the block counts once. A plain ETH transfer carries no data; an ERC-20 transfer is a call whose first four bytes are the standard transfer selector; a blob transaction is type 3, the kind rollups use to post data; a contract creation has no recipient; everything else is a contract call.

      Transaction types in each block since you connected
      BlockTransactions per type
      Transactions per block Waiting for the first block
      • succeeded
      • reverted (included, gas paid)
      • before you connected

      Use the left and right arrow keys to read each block's count.

      Transactions in each recent block
      BlockTransactionsSucceededRevertedGas usedTime
      Epoch — slot — of 32 0 % gas 0.00 gwei 0.0000 ETH burned final to epoch —, — slots ago — validators

        The parts that make this work

        Slots and epochs

        Time on Ethereum's beacon chain is cut into 12-second slots, 32 to an epoch of 6 minutes 24 seconds, counted from 1 December 2020. Each slot may hold one block; a proposer who is offline simply leaves the slot empty, which happens in roughly one slot in a hundred. The first block of an epoch is that epoch's checkpoint, the unit that justification and finality work on. The clock on the block strip above shows the real slot and epoch, in both modes.

        Proposers and RANDAO

        Anyone can run a validator by depositing 32 ETH; since the Pectra upgrade in May 2025 a single validator can hold up to 2,048 ETH, and voting weight follows the balance. The network has close to 900,000 active validators securing around 39 million ETH. The proposer for each slot is picked from them at random, weighted by balance, using RANDAO: a number every proposer updates by mixing in their signature over the epoch, which nobody can predict more than about an epoch ahead. The proposer earns the block's priority fees plus a reward for the attestations it packs in.

        Attestations, committees and aggregation

        Each epoch every active validator is shuffled into one of 2,048 committees, 64 per slot, about 430 validators each. When their slot comes they publish an attestation carrying three votes: the head block they see, the last justified checkpoint (source) and the current epoch's checkpoint (target). Signatures are BLS, so 16 chosen aggregators per committee can merge hundreds of them into one, and the next block includes each committee's combined vote as a bitfield and a single signature. A separate sync committee of 512 validators, rotated every 256 epochs, signs every block for light clients.

        LMD-GHOST

        Nodes don't wait for a vote to settle which block is the head. Each node takes the latest message from every validator (LMD), starts at the last justified checkpoint, and at each fork follows the child with the greatest weight of votes below it (GHOST, the greediest heaviest-observed subtree). Because votes are weighted by stake and refreshed every epoch, a block that most validators attested to is very hard to displace, even before it is final. Proposer boost gives a block that arrives on time a temporary extra weight so late blocks can't easily reorganise it.

        Casper FFG: justified and final

        Attestations also carry source and target checkpoints. When attestations worth at least two thirds of all stake link the same source to the same target, the target checkpoint is justified. When two justified checkpoints follow one another, the earlier one is final. Normally the checkpoint at the start of an epoch is justified when that epoch ends and final one epoch later, 12.8 minutes after it was proposed; a block in the middle of an epoch is final with its epoch's checkpoint, so between about 13 and 19 minutes after it was proposed.

        Slashing and the ⅓ / ⅔ rule

        Two things get a validator slashed: signing two different blocks for the same slot, or two attestations that contradict each other, whether the same target twice or one vote that surrounds another. Finalising two conflicting checkpoints would need two-thirds majorities for each, and with only one whole of stake to vote with, at least a third of it must have voted for both and is provably slashable: that is what makes a finalised block cost a third of all staked ETH to revert. A slashed validator loses at least 1⁄4,096 of its balance immediately, more if many are slashed at once, and is ejected. Holding a third of stake offline is enough to stop finality, so after four epochs without it the inactivity leak drains the balances of validators who aren't voting until the honest majority is two thirds again.

        PBS and MEV-Boost

        Ordering transactions well is worth money, so most proposers outsource it. Builders construct full blocks and send sealed bids to relays; the proposer's MEV-Boost software picks the highest bid, the proposer signs the block header blind, and the relay publishes the body. This is proposer-builder separation done outside the protocol, and around nine blocks in ten go through it. The protocol version, enshrined PBS, is planned for the Glamsterdam upgrade and is not on mainnet yet. The name in a block's extra data, such as BuilderNet or Titan, is the builder's signature and is what live mode reports.

        EIP-1559 and blobs

        A block's gas limit is 60 million and the base fee targets half of it: use more than 30 million gas and the base fee rises up to 12.5 % for the next block, use less and it falls. The base fee is burned; only the priority fee goes to the block's fee recipient. Since the Dencun upgrade rollups post their data as blobs, 128 KiB chunks with a separate fee market that the consensus layer keeps for about 18 days. Fusaka in December 2025 and the blob-parameter-only forks that followed raised the target to 14 blobs and the maximum to 21 per block, with nodes custodying and sampling columns of the data rather than every blob.

        What live mode shows

        Live mode reads Ethereum mainnet from two public endpoints run by PublicNode: an execution-layer JSON-RPC WebSocket for each new block, its transactions and receipts, and a beacon-node API for the slot, proposer, attestations, blob commitments and the justified and finalised checkpoints. The block numbers, hashes, gas, base fees, transaction types, reverts and the proposer's validator index are all real. The ring shows 160 validator positions standing in for the whole set: the proposer lights up at the position for its index, and the blue beams are scaled to the share of the slot's committees whose votes the next block included. Bids, relays and gossip aren't observable from outside, so those steps are shown only in step-by-step mode.

        What the animation simplifies

        Step-by-step mode shows one slot in detail and then runs the rest of the epoch fast, so justification and finality arrive every cycle instead of every 32 slots. A real slot's committees hold about 27,000 validators, not 20, and attesting, aggregating and gossip overlap rather than following one another. Single-slot finality and enshrined PBS are under research and development and are not live. Read the ethereum.org description of Gasper for the full protocol.