HyperBFT
HyperBFT is Hyperliquid's HotStuff-derived proof-of-stake consensus: stake-weighted validators commit rounds that every honest node executes in the same order.
HyperBFT decides the order of every transaction on Hyperliquid. Every node must hold the same balances, books and fills, so all must agree on one ordered list while some validators are slow, offline or dishonest. HyperBFT guarantees that as long as a quorum of stake is honest.
It is Hyperliquid’s own: a custom algorithm the docs call a variant of HotStuff, on a networking stack built from the ground up, optimised for end-to-end latency (request sent to committed response).
Say 300M HYPE is staked in total. A round commits when validators holding more than 200M sign it. Any two such quorums overlap by more than 100M, a third of the stake, so conflicting rounds can both commit only if that overlap signs both.
Consensus orders, execution follows
Section titled “Consensus orders, execution follows”- Quorum: any set of validators holding more than 2/3 of total stake. Double-signing is the docs’ example of slashable behaviour, but no slashing is automatic yet.
- Round: a bundle of transactions with a quorum’s signatures. Once certain conditions are met it is committed, and all honest nodes agree on the ordered list of committed rounds.
- Height: the execution block number, which rises only on rounds with at least one transaction.
- Jailing: validators may vote to jail a peer that answers consensus messages without adequate latency or frequency. On a quorum of votes it leaves consensus and its delegators earn nothing; it can unjail once fixed, within on-chain rate limits. Jailing is not slashing, which the docs reserve for provably malicious behaviour.
Validators produce blocks in proportion to stake. The mempool and consensus logic know which transactions touch the order books, so the protocol can sort cancels ahead of GTC and IOC orders in each batch (ordering).
A HyperEVM block is built only on the first L1 block in each interval, after that L1 block (execution order).
The numbers
Section titled “The numbers”| Parameter | Value | Context |
|---|---|---|
| Commit quorum | more than 2/3 of total stake | any such set of validators |
| Finality | 1 block | “one-block finality” for HyperCore actions |
| Time to commit | usually 2 blocks | pipelined consensus |
| Consensus batches per block | usually 1 to 2 | sorting happens per batch |
| Priority window | 70 ms | the docs say this usually corresponds to 1 block |
| Epoch | 100,000 rounds, about 90 minutes | mainnet; validator set and stakes fixed within it |
| Active validator set | top 27 by stake | |
| Validator self-delegation | 10,000 HYPE, locked 1 year | |
| End-to-end latency | median 0.2 s, 99th percentile 0.9 s | order from a co-located client |
| Throughput | about 200,000 orders per second | execution, not consensus, is the bottleneck |
| HyperEVM blocks | small every 1 s (3M gas), big every 60 s (30M gas) | built inside L1 blocks |
| Node state snapshots | every 10,000 blocks | written by any node |
What commit means for your orders
Section titled “What commit means for your orders”- The API answers only after commit, so the response is final.
- Most end-to-end latency is the API trip, mempool entry and the 2-block commit. The docs say sequencing is far less noisy.
Following consensus from code
Section titled “Following consensus from code”- Keep three counters apart: rounds (consensus steps), height (execution blocks, skipping empty rounds) and HyperEVM block numbers (one series shared by small and big blocks). A contract reads the L1 block number from precompile
0x809(l1BlockNumber). - A node writes every committed block, and a state snapshot every 10,000 blocks, to disk: paths are on running a node.
- Measured on testnet, small HyperEVM blocks arrive every 0.95 to 1.00 s, as documented.
- The docs give properties, not a full specification. Don’t assume HotStuff’s leader rotation, timeouts or message formats apply unchanged.
Reading the headline claims precisely
Section titled “Reading the headline claims precisely”- “One-block finality” and “commit in 2 blocks” are both true. A committed block is never reversed; reaching commit takes 2 blocks because consensus is pipelined.
- Stake changes wait for the epoch. The validator set and consensus stakes are fixed within an epoch, so a delegation changes consensus weight only from the next one. Rewards use each epoch’s minimum balance.
- One headline, two nouns. The HyperCore overview says about 200,000 orders per second; another page says up to 200,000 transactions per second. It is one figure.
- Guarantees are conditional on honest stake. The docs point to the 7-day unstaking queue as the window to penalise a large-scale attack, by slashing or social-layer mechanisms.
For who holds the stake, see Validators and delegation; for how it enters and leaves, see staking.