CoreWriter and precompiles
The two-way bridge inside one chain that lets an app on the HyperEVM trade on Hyperliquid's order books.
Precompiles and CoreWriter are the two built-in doors between Hyperliquid's smart-contract layer (HyperEVM) and its exchange engine (HyperCore). Read precompiles starting at address 0x…0800 let a contract read live prices, positions and balances; the CoreWriter contract at 0x3333…3333 lets it send actions such as orders, transfers and staking, for about 47,000 gas per basic call. Both are live on HyperEVM mainnet (chain ID 999), verified onchain on 4 November 2026.
Hyperliquid has two execution environments on one chain. HyperCore is the exchange: order books, margin, liquidations. The HyperEVM is an Ethereum-compatible computer where anyone can deploy smart contracts. (If that split is new, start with HyperCore vs HyperEVM.)
On most chains, a lending app that wants an exchange price has to trust an outside oracle, and one that wants to trade has to route through a separate DEX. On Hyperliquid, both environments are secured by the same HyperBFT consensus, so a contract can look straight into the exchange and trade on it. Precompiles are the window. CoreWriter is the door.
Precompiles: reading HyperCore
A precompile is a contract address that isn’t ordinary code: the node answers calls to it natively. Hyperliquid’s read precompiles start at 0x0000000000000000000000000000000000000800 and expose:
- perp positions and spot balances of any address
- vault equity and staking delegations
- oracle prices for perps and spot
- the current L1 (HyperCore) block number
The values are guaranteed to match HyperCore’s latest state at the moment the EVM block is built. For a Solidity developer this is just a function call, costing 2000 + 65 × (input bytes + output bytes) gas. Calls with invalid inputs (an asset that doesn’t exist, say) fail and consume all gas sent.
Example: a lending protocol on the HyperEVM can read the HYPE/USDC price directly from HyperCore to decide whether a loan is under-collateralized, with no separate oracle network in between.
CoreWriter: acting on HyperCore
CoreWriter is a system contract at 0x3333333333333333333333333333333333333333. A contract calls it with an encoded action (a version byte, a 3-byte action ID, then ABI-encoded fields), CoreWriter emits a log, and HyperCore executes the action. It burns about 25,000 gas before emitting; a basic call uses about 47,000 gas in practice.
| ID | Action | ID | Action |
|---|---|---|---|
| 1 | Limit order | 9 | Add API wallet |
| 2 | Vault transfer | 10 | Cancel order by order ID |
| 3 | Token delegate (stake to a validator) | 11 | Cancel order by client order ID |
| 4 | Staking deposit | 12 | Approve builder fee |
| 5 | Staking withdraw | 13 | Send asset |
| 6 | Spot send | 15 | Borrow / lend operation |
| 7 | USD class transfer (perp ↔ spot) | 16 | Set account abstraction mode |
| 8 | Finalize EVM contract link | 17 | Outcome operation |
So a smart contract can run a trading vault, a liquid-staking pool or a structured product that holds real HyperCore positions. The portfolio margin docs say a future upgrade will expose the margin “supply” action through CoreWriter too.
The deliberate delay
To stop anyone using the HyperEVM as a fast lane around HyperCore’s normal transaction queue, orders and vault transfers sent through CoreWriter are delayed onchain by a few seconds. They show up twice in the explorer: once when queued, once when executed. Also note the timing rule: the account taking a CoreWriter action must already exist on HyperCore before the EVM block is built.
System addresses: moving tokens between the two sides
Moving a token between HyperCore and HyperEVM means sending it to that token’s system address:
| Asset | System address |
|---|---|
| HYPE | 0x2222222222222222222222222222222222222222 (arrives as native gas on the EVM) |
| Any other linked token | 0x20 followed by zeros and the token index, e.g. index 200 → 0x20000000000000000000000000000000000000c8 |
| Wrapped HYPE (WHYPE) contract | 0x5555555555555555555555555555555555555555 |
Core → EVM transfers are queued until the next HyperEVM block and cost 200k gas at the next block’s base price. EVM → Core transfers settle in the same L1 block, right after the EVM block. The docs warn there are no automatic checks that a linked ERC-20 is honest, so verify a token’s contract before bridging it.
Is it actually live? Docs vs chain
Hyperliquid’s general HyperEVM overview page still says “write system contracts are not live on mainnet yet.” The developer pages describe them in full. We checked the chain directly on 4 November 2026: the HyperEVM mainnet RPC (rpc.hyperliquid.xyz/evm) returned chain ID 999 and non-empty contract code at both 0x3333…3333 (CoreWriter) and 0x5555…5555 (WHYPE). The overview page is out of date.
Kinetiq’s Elysium L2 plans a similar read/write edge (a market-data precompile and a keeper write lane) in an upgrade about four weeks after its mainnet launch.
Why it matters to you
- Apps on HyperEVM can hold real exchange positions. When a vault or staking app says it trades on HyperCore, this is how. You can verify it onchain.
- Fewer oracle middlemen. Prices read from HyperCore are the same ones the exchange uses for margin.
- Sending to the wrong address loses funds.
0x2222…2222is for HYPE only. - “Instant” isn’t instant. CoreWriter orders wait a few seconds by design.
What can go wrong
- Smart-contract risk. An app using CoreWriter can do anything its code allows with funds you deposit, including trade, transfer or stake them. Audit history and admin keys matter.
- Wrong system address. Non-HYPE tokens sent to
0x2222…2222are lost. - Unverified token links. A linked ERC-20 can contain arbitrary code. Bridge only well-known tokens.
- Rejected actions. CoreWriter actions from an account that doesn’t yet exist on HyperCore are rejected.
Related: HyperCore vs HyperEVM, builder codes, and the Elysium L2.
Questions people ask
What is CoreWriter on Hyperliquid?
CoreWriter is a system contract at 0x3333333333333333333333333333333333333333 on the HyperEVM. A smart contract calls it to send an action to HyperCore, such as placing or cancelling an order, moving funds, staking or approving a builder fee. It burns about 25,000 gas, and a basic call uses about 47,000.
What are Hyperliquid precompiles?
Read precompiles are built-in contracts at addresses starting 0x0000000000000000000000000000000000000800 that return HyperCore data to a HyperEVM contract: perp positions, spot balances, vault equity, staking delegations, oracle prices and the L1 block number. The values match HyperCore's state when the EVM block is built.
Is CoreWriter live on mainnet?
Yes. On 4 November 2026 the HyperEVM mainnet RPC returned contract code at 0x3333...3333, and the developer docs list 16 action types. One older overview page in the docs still says write system contracts are not live on mainnet; that page is out of date.
How do I move HYPE from HyperCore to HyperEVM?
Send HYPE to 0x2222222222222222222222222222222222222222 from your spot balance, or use the Transfer to/from EVM button in the app. The docs warn that this address only works for HYPE: other tokens sent there are lost, because each token has its own system address.
Sources
- Hyperliquid Docs — Interacting with HyperCore (precompiles, CoreWriter)
- Hyperliquid Docs — HyperCore <> HyperEVM transfers (system addresses)
- Hyperliquid Docs — Interaction timings
- Hyperliquid Docs — HyperEVM (developer overview, chain IDs)
- Hyperliquid Docs — Wrapped HYPE
- Hyperliquid Docs — HyperEVM overview (still says write contracts not live)
- Hyperliquid Docs — Portfolio margin (CoreWriter supply action)
- Elysium Docs — What is Elysium (HyperCore read/write on the L2)