{"slug":"l1-finality","title":"Fastest L1 blockchain finality, live wall-clock measurement per chain","subtitle":"Wall-clock time for a block to become final on 18 chains, from Ethereum, Bitcoin and Solana to NEAR, Sei and Algorand, each against its own finality rule, measured live.","category":"Blockchains","metric":"Finality time","unit":"s","status":"live","higherIsBetter":false,"filters":null,"value":0.245,"leader":{"name":"SUI","slug":"sui","value":0.245},"leaders":[{"name":"SUI","slug":"sui","value":0.245}],"rankings":[{"name":"SUI","slug":"sui","value":0.245,"unit":"s","ms":{"p50":245,"p90":254.517,"p99":279.42,"mean":244.815},"successRate":100,"sampleSize":169832},{"name":"Sei","slug":"sei","value":0.269,"unit":"s","ms":{"p50":269,"p90":324,"p99":370,"mean":274.954},"successRate":100,"sampleSize":33264.9},{"name":"Kaia","slug":"kaia","value":0.371,"unit":"s","ms":{"p50":371,"p90":536,"p99":1298.19,"mean":435.81},"successRate":99.80839999999999,"sampleSize":15615.9},{"name":"Gram","slug":"gram","value":0.4,"unit":"s","ms":{"p50":400,"p90":502.1,"p99":1219.42,"mean":435.133},"successRate":99.6528,"sampleSize":200715},{"name":"Solana","slug":"solana","value":0.407,"unit":"s","ms":{"p50":407,"p90":593,"p99":746.21,"mean":416.425},"successRate":100,"sampleSize":403092},{"name":"Cronos","slug":"cronos","value":0.632,"unit":"s","ms":{"p50":632,"p90":732.9,"p99":1424.95,"mean":663.939},"successRate":99.80839999999999,"sampleSize":34143.2},{"name":"BNB","slug":"bnb","value":0.823,"unit":"s","ms":{"p50":823,"p90":925,"p99":3012,"mean":849.236},"successRate":98.9236,"sampleSize":113438},{"name":"Avalanche","slug":"avalanche","value":0.969,"unit":"s","ms":{"p50":969,"p90":1144,"p99":1460.47,"mean":993.292},"successRate":98.9583,"sampleSize":90032.3},{"name":"Internet Computer","slug":"icp","value":0.9975,"unit":"s","ms":{"p50":997.5,"p90":1302.8,"p99":1810.78,"mean":1043.82},"successRate":100,"sampleSize":29767.6},{"name":"NEAR","slug":"near","value":1.15011,"unit":"s","ms":{"p50":1150.11,"p90":1274.81,"p99":1425.45,"mean":1146.57},"successRate":100,"sampleSize":7816.97},{"name":"Algorand","slug":"algorand","value":2.755,"unit":"s","ms":{"p50":2755,"p90":2792.9,"p99":2842.58,"mean":2756.65},"successRate":100,"sampleSize":5677.69},{"name":"Stellar","slug":"stellar","value":5,"unit":"s","ms":{"p50":5000,"p90":8006.3,"p99":15085.2,"mean":5554.54},"successRate":100,"sampleSize":15300.3},{"name":"TRON","slug":"tron","value":57,"unit":"s","ms":{"p50":57000,"p90":57000,"p99":60000,"mean":57058.3},"successRate":100,"sampleSize":2880},{"name":"Ethereum","slug":"ethereum","value":948,"unit":"s","ms":{"p50":948000,"p90":1104000,"p99":1140000,"mean":951471},"successRate":99.9653,"sampleSize":2880},{"name":"Robinhood Chain","slug":"robinhood","value":999.195,"unit":"s","ms":{"p50":999195,"p90":1039532,"p99":1117973,"mean":1000360},"successRate":98.8194,"sampleSize":562364},{"name":"Monero","slug":"monero","value":1169,"unit":"s","ms":{"p50":1169000,"p90":1717200,"p99":2182000,"mean":1194790},"successRate":100,"sampleSize":2880},{"name":"Litecoin","slug":"litecoin","value":1740.001,"unit":"s","ms":{"p50":1740001,"p90":2429999,"p99":2939983,"mean":1779740},"successRate":100,"sampleSize":516.179},{"name":"Bitcoin","slug":"bitcoin","value":3540,"unit":"s","ms":{"p50":3540000,"p90":6269996,"p99":7409999,"mean":3746070},"successRate":99.9653,"sampleSize":133.046}],"sparkline":[257,243.667,254.5,239.667,239.5,245,251.5,248,246,252.5,246,252.333,239.333,246.5,242.5,240.333,257,254.5,205,228,249,225,248,236.333,226,210,255.333,253,243,250.333,244.333,223.5,254,234,250.5,243,249,245,248.667,230.5,226,236.5,241.5,248.5,240,262,243,244,247.667,250,255,243.5,245.5,243,240,245.5,230,216,253,248,224.667,249.5,253,244.5,241,241.333,248.333,244,250,227.5,259.5,243.5,243],"sampleSize":1690349.085,"asOf":"2026-11-03T19:41:26.554Z","freshness":{"asOf":"2026-11-03T19:41:26.554Z","ageHours":0.1,"stale":false},"measured":18,"ranked":18,"headline":"SUI posts the lowest finality time at 0.24 s (p50, 24h) across 18 ranked chains.","quote":"SUI posts the lowest finality time at 0.24 s (p50, 24h) across 18 ranked chains. Source: OpenChainBench (https://openchainbench.com/benchmarks/l1-finality).","cite":{"plain":"OpenChainBench. \"Fastest L1 blockchain finality, live wall-clock measurement per chain\". Retrieved 2026-11-03. https://openchainbench.com/benchmarks/l1-finality","bibtex":"@misc{ocb_l1_finality,\n  author = {OpenChainBench},\n  title  = {Fastest L1 blockchain finality, live wall-clock measurement per chain},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/l1-finality},\n  note   = {Retrieved 2026-11-03}\n}","apa":"OpenChainBench. (2026). Fastest L1 blockchain finality, live wall-clock measurement per chain. Retrieved November 3, 2026, from https://openchainbench.com/benchmarks/l1-finality","ris":"TY  - GEN\r\nAU  - OpenChainBench\r\nTI  - Fastest L1 blockchain finality, live wall-clock measurement per chain\r\nPY  - 2026\r\nUR  - https://openchainbench.com/benchmarks/l1-finality\r\nY2  - 2026-11-03\r\nER  - \r\n"},"pageUrl":"https://openchainbench.com/benchmarks/l1-finality","ogImage":"https://openchainbench.com/api/og/l1-finality","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/l1-finality","methodology":["Cadence: every 10 seconds for Ethereum, TRON and Monero; continuous WebSocket or SSE streams for BNB, Avalanche, Robinhood Chain, Solana, Sei, Cronos, Kaia, Stellar and Gram; a long poll for Algorand; 250 and 500 ms polls for the Internet Computer and SUI; 2 s for NEAR, whose figure comes from block timestamps; 30 s for Bitcoin and Litecoin.","Ethereum: `eth_getBlockByNumber(\"latest\")` minus `eth_getBlockByNumber(\"finalized\")`.","Avalanche (WS, from production): since Streaming Asynchronous Execution went live on 2026-09-22, `latest` is an accepted (Snowman-final) and executed block and `finalized` is the settled block, 5 s later by design. The figure is therefore arrival over `newHeads` minus the header's `timestampMilliseconds` (proposer clock); readings outside 0 to 60 s are dropped as skew. From 2026-09-22 to 2026-10-24 the row timed latest to finalized and published the settlement delay, about 6 s.","BNB (WS wall-clock): persistent `eth_subscribe(\"newHeads\")` records T1 = first time block N is seen as latest. Periodic `eth_getBlockByNumber(\"finalized\")` over same WS records T2 when N becomes finalized. lag = T2 − T1, ms precision. Since 2026-11-03 a socket with no head for 20 s or no finalized advance for 30 s is reconnected: before that, the public node could stop sending heads for hours while still answering, and the row held its last value.","Robinhood Chain (rollup, WS wall-clock): same subscription as BNB / Avalanche on `wss://robinhood-rpc.publicnode.com`. `finalized` advances by whole batches once they are finalized on the parent chain (about 10,000 blocks at about 100 ms each), so every block of a batch is timed, all of them enter the histogram, and the published series carries the batch median: the last block of a batch always has the smallest lag and would understate finality.","Solana: WebSocket `slotSubscribe` and `rootSubscribe` on the public mainnet endpoint. T1 = first notification of slot S, T2 = first root at or above S; lag = T2 - T1 in ms. Replaced the `getBlockTime` difference on 2026-10-22, after Alpenglow made finality shorter than its one-second resolution.","TRON: `/wallet/getnowblock` (head) minus `/walletsolidity/getnowblock` (solidity-confirmed).","Stellar (ledger close times): Horizon `/ledgers?cursor=now&order=asc` event stream, SCP-final at every close; sample = (closed_at(N) - closed_at(N-10)) / 10, once per new ledger. Before 2026-11-03 the sample was the gap between two ledgers arriving on the stream, which measured Horizon's uneven delivery: median 4.0 s on a chain closing every 5.0 s.","SUI: latest checkpoint from the official GraphQL service (`graphql.mainnet.sui.io`), polled every 500 ms; sample = (timestamp N − timestamp M) / (N − M) over the checkpoints committed between two polls, from the checkpoints' own millisecond commit timestamps. Before 2026-10-24 the sample was the gap between two polls that saw a new checkpoint, which only measured our 500 ms poll; that day it also moved off `sui_getLatestCheckpointSequenceNumber`, retired with JSON-RPC on the public fullnodes.","Gram: wall-clock interval between consecutive masterchain seqnos on the tonapi.io block stream (`workchain=-1`), first sight of N+1 minus first sight of N; a transaction is final once a masterchain block includes it. When the stream is unavailable a 300 ms REST poll of the masterchain head stands in, with intervals over 2 s dropped as poll aliasing.","Bitcoin (probabilistic, own-clock): mempool.space `/blocks/tip/height` polled every 30 s. T1 = first poll where block N is the tip, T2 = first poll where tip − N ≥ 6 (the exchange deposit convention). lag = T2 − T1 on the harness clock; miner-set block timestamps (consensus allows 2h skew) are never used. The startup tip is not timed. On a tip regression, pending timers above the new tip are dropped; same-height reorgs are invisible to height polling, bounding error to about one block interval.","Litecoin (probabilistic, own-clock): Tatum public JSON-RPC `getblockcount` polled every 30 s. T1 = first poll where block N is the tip, T2 = first poll where tip − N ≥ 12 (the post-April-2026 MWEB reorg deposit floor). Same rules as Bitcoin: the startup tip is not timed, skipped heights are never timed. Until 2026-10-24 this row was the timestamp gap between the tip and the block 12 below it on litecoinspace.org, whose index had fallen about 30 minutes behind the chain.","Monero (probabilistic): monero-rpc `get_info` minus 10 confirmations via `get_block_header_by_height`.","NEAR (chain timestamps): every 2 s, the optimistic head from dRPC's free NEAR endpoint, plus its parent and its `last_final_block` F by hash. Sample = timestamp of the head minus timestamp of F, both nanoseconds, kept only when the parent named an older final block, so the head is the first block naming F.","Sei and Cronos (CometBFT, from header time): `NewBlockHeader` subscription on the publicnode Tendermint WebSocket; sample = arrival minus header `time` (ns). A block is final when committed. On Sei the header time is this block's proposal; on Cronos it is BFT time, the previous height's commit, so the Cronos figure covers one whole height.","Kaia (from block start): `newHeads` on the public Kaia endpoint WebSocket. The producer starts a block at its parent's timestamp plus one whole second (kaia work/worker.go), so for a block whose timestamp is its parent's plus one, sample = arrival minus that second. Late blocks, timestamped with a fraction newHeads does not carry, are skipped.","Internet Computer (certified state): anonymous `read_state` for `/time` on the NNS subnet through icp-api.io, every 250 ms. When the certified time advances, sample = arrival (midpoint of the two answers' receive times) minus that time, the batch time of the block that produced the state.","Algorand (round time): algod `wait-for-block-after` long poll on the Nodely (algonode) free endpoint; sample = arrival of round r+1 minus arrival of round r, consecutive rounds only. Block `ts` is whole seconds, so it is not used.","Hedera (planned, currently disabled): mirror-node `/api/v1/blocks` only exposes already-final blocks, so true wall-clock lag is impossible from public endpoints. Re-enables once Block Nodes (HIP-1056) leave private preview.","Result for the 10 s polled chains (Ethereum, TRON, Monero): `lag_seconds = headTimestamp - finalizedTimestamp`, with the block-height delta and per-chain fetch latency. Every other chain publishes milliseconds to `l1_finality_wallclock_lag_milliseconds`.","Excluded by design: XRP (no close-time on `ledger_current`, wall-clock measurement requires WS subscribe to ledger stream, not yet implemented).","Excluded, Somnia (checked 2026-11-03): `latest`, `safe` and `finalized` are the same block and block timestamps are whole seconds on blocks about 100 ms apart, so neither a head to finalized gap nor a timestamp to arrival time can resolve its sub-second finality.","Excluded, Aptos (checked 2026-11-03): a fullnode serves only committed blocks, and the latest block's microsecond timestamp read 0 to 200 ms before arrival, often after our request left, so it does not mark the proposal. The Aptos Labs API also answered 429 at four requests a second.","Failures (5xx, timeouts, rate limits) leave the previous gauge in place and increment a per-chain `fetch_errors_total` counter; the page falls back to the last successful sample."],"license":"CC-BY-4.0"}