Live from a keyless public Solana RPC. The estimate multiplies slots since the last vote by the share of slots that produce a block and by the 667 votes an average block carried in our pre-switch sample, about 3,000 a second. It is a rough figure, not a count.
Gallery 2Exhibit 002
Flatline
Votes in every block from slot 459,652,900 to 459,653,300, read from the chain one block at a time. Then nothing.
Vote transactions per block1 column = 1 slot
slot 459,652,900459,653,300
13:36:05459,648,000Epoch 1064 begins and Alpenglow activates. On-chain votes keep landing for another 4,999 slots, about eighteen minutes.
13:54:00459,652,999The last block with votes: 649 of its 1,051 transactions. Exhibit 001 sits at position 1,050.
-459,653,000-007Eight slots, no blocks. The next block names 459,652,999 as its parent.
13:54:03459,653,008First block of the new era: 1,701 transactions, zero votes.
after-The Vote program is still called, only to manage accounts. Through slot 459,687,529: 29 calls (withdrawals, authority and commission changes), no votes.
How much of the chain was votes
65.6%
Before. Share of transactions that were votes.
66,694 of 101,732 transactions in 100 random blocks from the 108,000 slots before epoch 1064.
0%
After. Same measure.
0 of 50,820 transactions in 100 random blocks after the cutover.
Our figure counts transactions, summed across the sample. It sits below the published ~75% because votes per block hold fairly steady while user traffic rises and falls. Votes were cheap in compute, so their share of compute units was only 8.5% before, 0% after. Blocks in the same samples carried 350 before and 508 after non-vote transactions on average; the samples come from different hours, so that is a snapshot, not a measured effect. Raw numbers: vote-share.json.
Gallery 2Gallery 3 →
Gallery 3Reading room
What you are looking at
I
What a vote transaction was
Every Solana validator, for nearly every slot, signed a small transaction saying which blocks it had seen and agreed with. It paid a 5,000 lamport fee and went into a block like any other transaction. Weighted by stake, those votes are how the network decided a block was final.
Exhibit 001 is a TowerSync: one validator's view of slots 459,652,968 through 459,652,998, plus its root.
II
Why they are gone
Alpenglow replaces that design. Its voting component, Votor, sends votes as direct messages between validators instead of writing them to the ledger. Validators still vote. The votes just never become transactions.
Published figures put finality at about 100 - 150 ms, down from about 12.8 s.
III
What it frees up
Blocks that carried several hundred votes each, about 667 on average in our sample, now carry only user transactions. A vote is no longer a fee-paying transaction, and the ledger no longer stores one vote record per validator for nearly every slot.
What it does not promise: any particular fee level or throughput. Those depend on demand and on the rest of the network.
ProvenanceFile 001/M
How we found it
Listed every confirmed block from slot 459,648,000 (epoch 1064, activation) to the tip at search time with getBlocks.
Binary searched those blocks with getBlock for the last one holding a consensus vote instruction (TowerSync, CompactUpdateVoteState and the other vote variants). Account admin, like withdrawals, does not count.
Fetched every slot from 459,652,900 to 459,653,300 to confirm votes stop at once and do not trickle back.
Cross-checked with the Vote program's own signature index, paged back from the tip past the boundary. Every later call was account admin; none was a vote.
Took the last vote in block order inside slot 459,652,999.
Confidence: high, for "last on-chain vote included in a confirmed block". All votes in that block share one slot and one block time, so "last" means last in block order. Full write-up in METHOD.md. Data: last-vote.json.
Gift shopExit through here
The Last Vote$LASTVOTE
A memecoin about Exhibit 001. It does nothing on-chain beyond being a token. No roadmap, no promises. Buy only what you are fine losing.