The HyperLiquid bridge handles all asset movement between the L1 and Arbitrum. It is a validator-voted system: both deposits and withdrawals require quorum agreement from the active bridge validator set before execution. Key numbers:Documentation Index
Fetch the complete documentation index at: https://hypernode-docs.polynode.dev/llms.txt
Use this file to discover all available pages before exploring further.
- Withdrawal time: ~5 minutes to finalize
- Withdrawal fee: $1 USDC
- Quorum: 2/3+ of bridge validator stake weight must agree
- Bridge validator set: distinct from the consensus validator set, updated when the consensus set changes
Bridge state
The bridge maintains several state structures to track in-flight operations:| Field | Purpose |
|---|---|
eth_id_to_deposit_votes | Maps Ethereum event IDs to deposit vote tallies |
finished_deposits_data | Completed deposit records |
withdrawal_signatures | Validator signatures on pending withdrawals |
withdrawal_finalized_votes | Finalized withdrawal vote tallies |
finished_withdrawal_to_time | Completed withdrawal timestamps |
validator_set_signatures | Validator signatures for set updates |
validator_set_finalized_votes | Finalized validator set update votes |
Bridge validator set
The bridge validator set is distinct from the consensus validator set. It tracks which validators are authorized to sign bridge operations.Event identification
Every bridge event on Arbitrum is identified by anEthEventId (the “Eth” prefix is HyperLiquid’s internal naming convention):
Deposit flow
Deposits move assets from Arbitrum to HyperLiquid L1. The flow requires validator quorum before crediting the user.Arbitrum deposit detected
Validators independently observe a deposit event on Arbitrum, identified by its
EthEventId.Validators vote
Each validator submits a
VoteEthDepositAction referencing the ethId of the L1 event. Votes accumulate in eth_id_to_deposit_votes.Quorum reached
Once sufficient validators have confirmed the deposit, it becomes a
FinishedDeposit and is stored in finished_deposits_data.DepositInvalidated event.
Deposits are the only way to move USDC onto HyperLiquid L1. All deposit events must pass validator quorum — there is no unilateral crediting mechanism.
Withdrawal flow
Withdrawals move assets from HyperLiquid L1 to Arbitrum. The process includes a time-lock period and requires validator signatures. Users initiate withdrawals by submitting awithdraw3 action (see Account Actions).
User requests withdrawal
The user submits a
bridgeWithdrawal action, which emits a WithdrawalRequested event and enters withdrawal_signatures tracking.Time-lock period
The withdrawal enters a pending state with a
lockedUntilTimestamp. It cannot be executed until this time passes.Validators sign
Each validator submits a
ValidatorSignWithdrawalAction containing the destination address, usd amount, and nonce.Finalization votes
Validators vote on the finalized Arbitrum transaction via
VoteEthFinalizedWithdrawalAction, which includes the ethTxHash of the settlement transaction.Pending withdrawal state
Each pending withdrawal tracks:Validator set updates
When the HyperLiquid validator set changes, the bridge must update its Arbitrum-side validator set to keep bridge operations secure. This is a multi-step process with its own quorum requirement.Update proposed
A
ValidatorSetUpdateAction is created with the new validator set. It includes an associated EthEventId and signature in (r, s, v) Legacy format.Validators sign
Each validator submits a
SignValidatorSetUpdateAction containing their signature over the new set. Signatures accumulate in validator_set_signatures.| Event | Description |
|---|---|
ValidatorSetUpdate | The update event itself |
ValidatorSetUpdateEvent | Event wrapper for indexing |
WithdrawalFinalizedValidatorSetUpdate | Combined finalization variant |
USDC EVM contract
The bridge manages a USDC contract on the HyperLiquid EVM side:L1 transfers
Internal L1 transfers between HyperLiquid accounts can be toggled via a feature flag:disabled_core_writer_actions in the protocol state.