All articles
Smart Contracts·March 29, 2026·6 min read

HyperCore vs HyperEVM: Hyperliquid's Dual Architecture Explained

HyperCore vs HyperEVM: how Hyperliquid splits order-book execution from EVM contracts, and which layer to build on for your use case.

{"excerpt":"HyperCore vs HyperEVM: how Hyperliquid splits order-book execution from EVM contracts, and which layer to build on for your use case.","tags":["Hyperliquid","HyperEVM","smart contracts","DeFi architecture","perpetuals"],"cover":"nodes","content":"Most "Layer 1 with an EVM" chains bolt EVM semantics onto a single execution environment and call it a day. Hyperliquid didn't do that. It runs two separate state machines under one validator set — HyperCore, a purpose-built order-book chain, and HyperEVM, a standard EVM execution layer — and makes them talk to each other through a narrow, deliberately constrained interface. If you're scoping a build on Hyperliquid, the first design decision isn't your token model or your fee structure. It's which of these two environments your contract actually needs to live in, because you often can't move it later without a rewrite.\n\n## What HyperCore actually is\n\nHyperCore is the chain that runs Hyperliquid's perpetuals and spot order books, its clearinghouse, staking, and the on-chain matching engine. It is not EVM-compatible and was never meant to be — it's a custom state machine tuned for one job: matching orders and updating positions with sub-second finality under HyperBFT consensus. There's no Solidity here, no arbitrary contract deployment, no generalized storage model. You get a fixed set of native primitives — place order, cancel order, transfer between spot and perp balances, adjust leverage — exposed through a JSON-RPC-style API and, more relevantly for builders, through actions that other layers can trigger.\n\nThat rigidity is the point. Order-book matching at the latency Hyperliquid targets doesn't tolerate the overhead of a general-purpose VM re-executing arbitrary bytecode on every state transition. HyperCore is fast because it does almost nothing else.\n\n## What HyperEVM adds\n\nHyperEVM is a fully general EVM execution environment running alongside HyperCore, secured by the same validator set but with its own block production. This is where you deploy normal Solidity — ERC-20s, vaults, lending markets, AMMs, whatever. It has its own gas market denominated in HYPE, and — this trips people up the first time — it runs two block types concurrently: small, fast blocks with a tight gas limit for routine transactions, and larger, slower blocks with a much bigger gas limit for anything gas-heavy like contract deployment or batch operations. Your transaction gets routed to whichever block type fits its gas cost, which means latency for a given tx isn't uniform the way it is on, say, Arbitrum. Load-test against both block types before you assume a fixed confirmation time in your front end.\n\nOn its own, HyperEVM is a competent but unremarkable EVM chain. What makes it interesting is the wiring back to HyperCore.\n\n## How the two layers actually talk\n\nHyperEVM contracts can read HyperCore state — oracle prices, a user's perp position, order book depth — through a set of read-only precompiles exposed at fixed system addresses. That direction is cheap and synchronous: your contract calls the precompile in the same transaction and gets current HyperCore state back.\n\nWriting in the other direction is different. To trigger a HyperCore action — place an order, move collateral between spot and perp, adjust a position — from a HyperEVM contract, you call a system contract (commonly referred to as CoreWriter) that queues the action for execution on HyperCore. It is not atomic with your EVM transaction. The action gets picked up and applied on HyperCore in a subsequent step, which means your contract has to be written assuming eventual, not immediate, effect. Get this wrong and you'll ship a vault that assumes a hedge landed before it actually did.\n\nsolidity\n// Simplified pattern for a HyperEVM contract reading HyperCore state\n// and queueing a HyperCore action — not atomic, design accordingly.\n\ninterface IHyperCoreOracle {\n function markPx(uint32 assetId) external view returns (uint64);\n}\n\ninterface ICoreWriter {\n function sendAction(bytes calldata encodedAction) external;\n}\n\ncontract HedgeRouter {\n IHyperCoreOracle constant ORACLE = IHyperCoreOracle(0x...precompile);\n ICoreWriter constant CORE_WRITER = ICoreWriter(0x...coreWriter);\n\n function rebalance(uint32 assetId, bytes calldata orderAction) external {\n uint64 price = ORACLE.markPx(assetId); // synchronous read\n require(price > 0, \"stale oracle\");\n CORE_WRITER.sendAction(orderAction); // async write, confirm later\n }\n}\n\n\nThat asynchronicity is the single most important mechanical fact for anyone building a strategy vault, hedging bot, or liquidation keeper on top of Hyperliquid. It's also exactly the kind of state-machine assumption that gets missed in a rushed review — the sort of gap a dedicated smart contract audit is built to catch before it reaches mainnet with real collateral behind it.\n\n## Comparison table\n\n| Dimension | HyperCore | HyperEVM |\n|---|---|---|\n| Execution model | Custom order-book state machine | Standard EVM |\n| Language | None (native actions only) | Solidity / Vyper |\n| Best for | Order matching, clearinghouse, native liquidity | Custom contract logic, ERC-20s, vaults, AMMs |\n| Finality feel | Sub-second, matching-engine speed | Two-tier: fast small blocks, slower large blocks |\n| Gas | N/A (protocol-level fees) | HYPE-denominated, EVM gas model |\n| Cross-layer read | N/A | Precompiles, synchronous |\n| Cross-layer write | N/A | CoreWriter, asynchronous |\n| Composability with other EVM tooling | None | Full — Foundry, Hardhat, standard indexers |\n\n## Which to pick when\n\nIf your product is a trading strategy, market-making bot, or anything that needs to touch Hyperliquid's actual order book and deep liquidity, you're building on HyperEVM and driving HyperCore through CoreWriter — there's no other path in. Compare that to how strategy bots handle execution risk elsewhere; the same discipline that goes into choosing Jito bundles over the public mempool for MEV protection on Solana applies here in spirit: you're managing the gap between when you decide to act and when the chain confirms it.\n\nIf you're shipping something that doesn't need native order-book access at all — a lending market, a novel token standard, a prediction-market settlement layer along the lines of what we covered comparing UMA's oracle against Chainlink for Polymarket-style resolution — HyperEVM alone is sufficient and you can treat Hyperliquid like any other EVM chain, precompiles unused. Don't reach for CoreWriter just because it's there.

The one case where you genuinely need HyperCore-level thinking without touching Solidity is pure market-making or arbitrage that only cares about the order book itself, not on-chain composability — at that point you're an API integrator, not a contract deployer, and HyperEVM is irrelevant to you.

Get the toolchain right regardless of which side you land on. Teams still debating Foundry against Hardhat for their 2026 audit workflow should know both work fine against HyperEVM since it's standard EVM RPC underneath — the harder part is mocking CoreWriter's async behavior in your test suite, which neither framework does for you out of the box.

Most teams get the architecture decision right and the async-write assumption wrong. If you're scoping a build that spans both layers, it's worth having someone who's shipped smart contract development work specifically against HyperCore's write semantics look at the design before you're managing real user collateral across two state machines at once."}

Need a bot like this built?

We design, build and run trading bots on Solana, Hyperliquid and Polymarket.

Start a project
#Hyperliquid#HyperEVM#smart contracts#DeFi architecture#perpetuals