HyperCore vs HyperEVM: Is Hyperliquid an L1 or L2?

Is Hyperliquid an L1 or L2? It's an L1 secured by HyperBFT. Learn how HyperCore and HyperEVM split the work, how they connect, and which one your app needs.

HydromancerTeam
HyperCore vs HyperEVM: Is Hyperliquid an L1 or L2?

Is Hyperliquid an L1 or an L2? You'll hear both, and "built on Arbitrum" too. Whether you're building on it or just trading on it, the answer decides where your data comes from and how your app talks to the chain.

Short answer: Hyperliquid is a layer-1 blockchain. It runs its own consensus, HyperBFT, with its own validators. Its state has two parts: HyperCore, the on-chain exchange, and HyperEVM, a smart-contract platform. HyperEVM isn't a rollup or a separate chain; it's secured by the same consensus.

What being an L1 means for Hyperliquid builders and traders

A layer-2 (L2) relies on an underlying L1, usually Ethereum, for settlement and security. A layer-1 (L1) secures itself. For anyone building or trading on Hyperliquid, being an L1 shapes a lot:

Hyperliquid (an L1) A typical L2
SecurityIts own validators and
HyperBFT consensus
Borrowed from the
chain it settles on
FinalityOne block, per
Hyperliquid's docs
Depends on the
chain it settles on
The exchangeBuilt into the
chain (HyperCore)
Usually smart
contracts on the L2
Smart contractsHyperEVM, in the same
state as the exchange
The L2 itself

Below, we clear up where the L2 idea comes from, then look at how HyperCore and HyperEVM fit together and which one your app needs. The details link to Hyperliquid's docs, and the prices shown are from our own requests.

HyperCore vs HyperEVM at a glance

HyperCore HyperEVM
What it isThe exchange: order
books, margin, positions
Smart contracts
and ERC-20 tokens
ConsensusHyperBFTThe same HyperBFT
How you read itHyperliquid's API (REST
and live streams)
JSON-RPC, like
other EVM networks
How you write to itSigned actions to the APIOrdinary EVM transactions
FeesTrading fees on fillsGas in HYPE
Chain IDNot an EVM network999 mainnet, 998 testnet
AddressesThe same address
on both sides
The same address
on both sides
Diagram of Hyperliquid's two parts: HyperCore (order books, margin, positions) and HyperEVM (smart contracts), connected by read precompiles, CoreWriter and token transfers, both secured by HyperBFT consensus.

Why people ask whether Hyperliquid is an L2

Three things cause the confusion:

  1. The Arbitrum bridge. USDC can come in from Arbitrum through what the docs now call the "legacy Arbitrum bridge". But USDC is minted natively on Hyperliquid, and the legacy bridge holds less than 10% of HyperCore's USDC.
  2. Signatures that mention Arbitrum. Some signed actions carry signatureChainId, and the docs' example is Arbitrum's chain ID. It's only the chain used when signing. A separate field, hyperliquidChain, names the Hyperliquid network.
  3. "L1" is used as a name. In Hyperliquid's docs, "the L1" means the Hyperliquid chain itself, as in "L1 blocks".

How Hyperliquid is built

  • HyperBFT is the consensus algorithm. Validators produce blocks in proportion to the HYPE staked to them.
  • HyperCore is the exchange. Every order, cancel, trade and liquidation happens on-chain, with one-block finality.
  • HyperEVM runs smart contracts. Its blocks are built as part of Hyperliquid's execution and inherit HyperBFT's security.

The onboarding docs put it simply: Hyperliquid is one state, with HyperCore state and HyperEVM state. Because it's one state, there's no bridge between the two parts.

One state, read from both sides

A HyperEVM contract can read HyperCore directly through built-in "precompile" contracts. You can try one from outside with an ordinary eth_call. This reads BTC's oracle price from both sides:

code
import requests

# HyperCore, through Hyperliquid's API
meta, ctxs = requests.post(
    "https://api.hyperliquid.xyz/info",
    json={"type": "metaAndAssetCtxs"},
).json()
print("BTC oracle price, HyperCore API:       ", ctxs[0]["oraclePx"])

# The same HyperCore value, read on HyperEVM
# through the oracle-price precompile
call = {
    "to": "0x0000000000000000000000000000000000000807",
    "data": "0x" + "00" * 32,  # perp index 0 = BTC
}
raw = requests.post(
    "https://rpc.hyperliquid.xyz/evm",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "eth_call",
        "params": [call, "latest"],
    },
).json()["result"]

price = int(raw, 16) / 10 ** (6 - meta["universe"][0]["szDecimals"])
print("BTC oracle price, HyperEVM precompile: ", price)
code
BTC oracle price, HyperCore API:        80608.9
BTC oracle price, HyperEVM precompile:  80608.9

Same value, two routes. The precompile reflects HyperCore as of the latest HyperEVM block, so it can briefly trail the API.

How HyperCore and HyperEVM connect

Direction Mechanism What to know
HyperEVM reads HyperCoreRead precompiles
from 0x…0800
Positions, balances,
prices, block number
HyperEVM acts on HyperCoreThe CoreWriter contract
at 0x3333…3333
Orders are delayed a
few seconds on purpose
Tokens move between themEach token's
system address
HyperCore to
HyperEVM waits for
the next EVM block

Details are in Hyperliquid's Interacting with HyperCore and transfers docs.

Which one does your app need?

  • Trading data is HyperCore data. Fills, positions, liquidations, funding and the order book all live there. Read them from Hyperliquid's API, your own node or a data provider.
  • Contract data is HyperEVM data. Balances, events and contract storage come over JSON-RPC.
  • Many apps need both. A lending protocol that prices collateral from HyperCore order books reads two sources. They keep separate block numbers, so line them up by timestamp, not block number.
  • Orders have two routes. A bot signs actions and sends them to the API. A contract uses CoreWriter. Both reach the same order book.

What to know about HyperEVM

  • Two block sizes. Small blocks come every second and big blocks every minute, in one numbering. Large deployments opt in to big blocks.
Gas limit of 125 consecutive HyperEVM blocks: small blocks with a 3M gas limit about once a second, and two big blocks with a 30M gas limit about a minute apart, all in one block-number sequence.
  • The public RPC is rate-limited. It allows 100 requests a minute per IP and serves state for the latest block only.
  • Endpoints and chain IDs for both networks are in our RPC vs data API guide.

HyperCore data for many wallets at once

Hydromancer serves HyperCore data: the exchange side. For HyperEVM contract data, you still use a JSON-RPC endpoint.

What you need Without Hydromancer (Hyperliquid's API only) With Hydromancer's API
Positions for many walletsclearinghouseState ,
one wallet per
request, from 1,200
weight a minute per IP
batchClearinghouseStates
: up to 1,000 wallets
in one request
Live fills for many walletsOne subscription per
wallet; the docs
allow 10 users per IP
One userFills subscribe
request for up to 1,000
addresses; each counts
toward your plan's
subscription total (500
on Starter)
HyperCore historyRecent data only
(for example, a
wallet's 10,000
most recent fills)
History from 28 July
2025, plus Reservoir ,
requester-pays S3 with
no Hydromancer fee
HyperEVM contract dataJSON-RPCThe same: use a
JSON-RPC endpoint

Running your own node? The node software finds public peers on its own, and Hydromancer offers dedicated node peering. Our RPC vs data API guide explains which job needs which.

FAQ

What is an L1 crypto?

A layer-1 (L1) is a blockchain that secures itself, with its own validators and consensus. Ethereum, Solana and Hyperliquid are L1s.

Is ETH a layer 1 or layer 2?

Ethereum is a layer 1. Layer-2 networks such as Arbitrum settle on Ethereum and rely on it for security.

Is Hyperliquid an L2?

No. Hyperliquid's docs describe it as a layer-1 blockchain with its own consensus, HyperBFT, and its own validators.

Is HyperEVM an L1 or L2?

Neither on its own. HyperEVM is one of the two parts of the Hyperliquid L1, secured by the same consensus. It has an EVM chain ID (999) because EVM wallets and tools need one.

Is Hyperliquid built on Arbitrum?

No. Arbitrum hosts the legacy USDC bridge, which holds less than 10% of HyperCore's USDC. USDC is minted natively on Hyperliquid.

Can a HyperEVM smart contract trade on HyperCore?

Yes. It reads HyperCore through precompiles and sends orders through CoreWriter. Orders are delayed a few seconds, and the contract's address must already be a HyperCore account.

Next steps