Skip to content
LearnHyperCore8 pages
HyperCore overviewFoundationHyperCore is where Hyperliquid's order books, margin, clearing and settlement run as native protocol state, applied by every validator in one order.The clearinghouse: one margin enginePractitionerHyperCore's clearinghouse holds balances and positions and checks margin on every trade; in standard mode each perp dex has its own balance and cross margin.The order book and matchingPractitionerEach HyperCore asset has one on-chain book matched in price-time priority, with cancels and post-only orders sequenced ahead of orders that take liquidity.Oracles, mark prices and robust price indicesPractitionerValidators publish perp oracle prices every 3 seconds; the mark price used for margin and liquidation is a median that no single book or venue can move.Quote assets: USDC, USDH, aligned and permissionlessPractitionerAny token can become a HyperCore quote asset if its deployer stakes 200k HYPE against a dollar peg and liquidity standard; aligned issuers also share reserve yield.Vaults: HLP, protocol vaults, user vaultsFoundationA vault pools depositors' USDC into one HyperCore account run by one strategy; HLP is the protocol vault that makes markets and performs liquidations.Multi-sig accountsPractitionerHyperCore can make any account a native k-of-n multi-sig with no smart contract, but CoreWriter stops working for it and its HyperEVM side keeps the old key.API servers and how state reaches youPractitionerAPI servers follow a node, keep a local copy of HyperCore state, answer reads from it, and reply to a transaction only once it executes in a committed block.
You are reading v1.0.4-beta, an older version of HyperBooks.Read the latest version, v1.0.6-beta

Where the chain and the docs disagree

Expert

Every place where measured behaviour on Hyperliquid contradicts the official docs: what the docs say, what was measured, the sample and the covering page.

Everything below was re-checked against the live official docs: every quoted docs passage is still there, and the Measured column is what mainnet shows. The docs lag the chain, and following a stale sentence can fail silently: a transaction that succeeds and does nothing, a timing off by a factor of ten, a field scaled differently. Where they disagree, on-chain measurement wins, then the official docs, then SDK code. Each canonical page flags its own cases; this page lists them all, with the sample size wherever there was one.

Most measurements come from three research tracks, settled by transactions and live API responses (borrow-rate options, composable credit, collateral underwriting). The rest come from auditing SDK wire formats against the live exchange, and from live info API reads.

The docs say one thing, the chain does another

Section titled “The docs say one thing, the chain does another”
Topic The docs say Measured Evidence Covered on
API wallets per account 1 unnamed and up to 3 named, plus 2 named per sub-account (the sub-accounts page: 3, rising by 2 per sub-account) 14 named API wallets, all unexpired, on an account with 1 sub-account, where the docs allow 5; about 9.3M USDC of cumulative volume Live extraAgents and subAccounts reads API wallets
CoreWriter delay Order actions and vault transfers sent from CoreWriter “are delayed onchain for a few seconds” Orders are accepted 0.35 to 0.51 s after the EVM block. Only vault transfers are delayed, by 4.05 to 4.10 s 5,455 mainnet CoreWriter actions over 73,914 blocks; 52 orders matched by client order id across 15 accounts and 14 markets; 6 vault transfers execution order
CoreWriter supply for contracts The portfolio margin page: “In a future upgrade, CoreWriter will expose the same supply action for smart contracts.” The CoreWriter table on another page already lists action 15 Live. A testnet contract supplied 500 USDC and held 500.00000051 one block later. Mainnet decodes action 15 into a typed lending action and enforces lending rules on it Testnet probe contract; two mainnet refusals carrying the CoreWriter-only action shape composable credit
CoreWriter action 14 The action table runs from 13 to 15 Action 14 exists on mainnet; its semantics are unknown 25 emissions in 3,000,001 mainnet blocks CoreWriter action reference
HIP-4 deployment The HIP-4 deployer actions page carries a “Testnet-only” label Permissionless deployment runs on mainnet: 4 deployer venues, 316 outcomes (308 built from templates) and 34 questions outcomeMeta on mainnet HIP-4
Outcome fees The HIP-4 page: “Fees are currently zero for outcome markets for initial testing.” Outcome trades pay fees: opening is free and closing is charged, at spot rates x (scale + max(scale, 1)): every buy was billed 0 and every sell was charged. The docs’ own fees page agrees: fees on closing or settling, never on opening 7,256 mainnet fills fees
Aligned quote token actions enableAlignedQuoteToken and disableAlignedQuoteToken are documented spotDeploy variants Both are rejected at the parse stage on mainnet and testnet SDK audit using a dummy signature, which the exchange checks only after parsing quote assets
Multi-outcome markets The HIP-4 page: multi-outcome markets “will be supported but are not part of the initial mainnet release” Multi-outcome questions run on mainnet 34 questions on mainnet what is an outcome market
HyperEVM write and read on mainnet The HyperEVM overview: write system contracts “are not live on mainnet yet”; the developer page introduces the read precompiles as a testnet EVM feature CoreWriter and the read precompiles are both live on mainnet 273,437 CoreWriter actions with known ids in 3,000,001 mainnet blocks; precompiles 0x800 to 0x814 assigned on both networks HyperEVM overview
Assistance Fund supply HYPE in the fund is burned, “removing the tokens permanently from the circulating and total supply” tokenDetails for HYPE listed the fund’s about 48.6M HYPE as non-circulating but still inside a total supply of about 998.8M; only about 1.2M HYPE had left total supply One live read: the API’s accounting, not a traced transfer HYPE
outcomeMetaUpdates frame Typed as a one-element tuple, [WsOutcomeMetaUpdate] Arrives as an array SDK wire audit WebSocket

The docs are silent, and not knowing loses money

Section titled “The docs are silent, and not knowing loses money”

Here the docs say nothing, or cover one direction only.

Topic The docs say Measured Evidence Covered on
CoreWriter failures CoreWriter burns about 25,000 gas “before emitting a log to be processed by HyperCore as an action”; nothing on failure The EVM transaction succeeds whether or not HyperCore executes. Four refusals seen with EVM status 1: Invalid number of decimals, Insufficient USDC or HYPE balance for token transfer gas, Borrow/Lend error: Insufficient spot balance for operation, Manual borrow/lend not allowed with portfolio margin Testnet transactions and mainnet refusals, each read from HyperCore’s action log footguns
Rounding, HyperCore to HyperEVM A non-round amount is “burned (guaranteed to be <1 Wei)”, which describes the HyperEVM to HyperCore direction with extra EVM decimals In the other direction, with USDC’s evmExtraWeiDecimals of -2, an amount that is not a multiple of 100 wei is rejected, not burned 5 of 5 sends followed the rule: 2 non-round refused, 3 round accepted moving assets
Bridge gas A transfer from HyperCore to the HyperEVM “costs 200k gas at the base gas price of the next HyperEVM block” The gas is charged from the sender’s HyperCore balance, in HYPE if that covers it, else from the token sent, so without spare HyperCore HYPE the whole balance cannot be sent On testnet, sending 100 of 100 USDC refused; 99 sent for 0.000588 USDC moving assets
Action 17 units wei “must be a multiple of size”; no scale given 1e8 per contract wei = 100000000 minted exactly one Long and one Short and moved 1 USDC, testnet CoreWriter
Precompile history Values match the latest HyperCore state when the EVM block is built; independent archive nodes serve historical state, and read precompiles are recorded only for the calls actually made The precompiles fail at any explicit block number, including the current head, even on an archive node that serves historical eth_getCode PrecompileOutOfGas at head, head minus 1, 20 and 10,000 precompiles
0x811 with no record Nothing Reverts rather than returning zeros, even for a HyperCore user holding spot Mainnet and testnet, including an account holding 31,989 USDC of spot precompiles
USDC on the HyperEVM The USDC page gives 0xb88339cb7199b77e23db6e890353e22632ba630f as the USDC contract on the HyperEVM HyperCore USDC (token 0) is linked to a different contract, 0x6b9e773128f453f5c2c60935ee2de2cbc5390a24. The docs’ USDC is not linked, so moving between the two is a swap spotMeta and the tokenInfo precompile moving assets
Staking links and deployers Staking links attribute a staking account’s HYPE to a trading account’s fee tier; nothing on deployers A deployer cannot have one. Activation is refused with Deployer cannot have staking link Testnet probe collateral underwriting
Unstaking on testnet A 7-day unstaking queue Exactly 7 days on mainnet; about 5 minutes on testnet One mainnet exit finalised 7 days and 1 second after it started; one testnet withdrawal finalised in 5 minutes staking
Market order TIF The order schema lists only Alo, Ioc and Gtc FrontendMarket is accepted on mainnet; the SDKs and the app send it for market orders, and the info endpoint’s own examples return it SDK wire usage; the docs’ own orderStatus example order types
Undocumented surface Nothing A sweep found about 18 undocumented exchange actions and 19 info requests working on mainnet; the docs have since added cDeposit2, trailingStop and userStarState, so the count may be lower now. Two appear nowhere in the live docs: the HTTP borrowLend action and the userToMultiSigSigners info request SDK audit against both networks; live docs search exchange action reference

These are now right in the current docs; they stay listed for checking older notes and SDKs.

Topic What was reported The docs now Covered on
Negate key Earlier documentation and SDK examples used negateQuestion; the wire key is negateOutcome, checked against Hyperliquid’s own interface The exchange endpoint page in the current mirror documents negateOutcome split, merge, negate
HIP-4 deploy action Deployment used {"type":"spotDeploy","outcome":{...}}; that shape is now rejected The current mirror documents a top-level outcomeDeploy with venue and operation outcome templates
Gossip priority auctions The docs said 2 Dutch auctions; gossipPriorityAuctionStatus returned 3 slots on mainnet 3 auctions priority fees
HYPE lending supply cap The docs gave a 10M HYPE global supply cap; a live reserve read showed 10,233,170.44 HYPE supplied A 25M global and 1M per-user cap, so that reading sits inside it borrowing and lending

Older SDKs still carry superseded forms: one sent outcomeDeploy without the venue and operation envelope, and mainnet answered Failed to deserialize the JSON body into the target type.

Here no measurement decides; two passages of the docs disagree.

Topic One passage The other Covered on
hip3LiquidatorTransfer signing The exchange endpoint shows it as an L1 action: no chain fields, expiresAfter accepted, and SDK code signs it so A comment on the HIP-3 deployer actions page calls it user-signed exchange action reference
Interest component “0.01% every 8 hours, which is 0.00125% every hour, or 11.6% APR” The hourly rate x 24 x 365 is 10.95 per cent; 11.6 per cent is 0.01 per cent per 8 hours compounded 1,095 times a year funding
Recurring binary settlement Contract specifications: Yes if the interpolated mark is at or above the target The spot info endpoint page: Yes if the mark at expiry is “above” targetPrice market shapes
HIP-1 token names name has “no uniqueness constraints” “The ticker is a unique onchain identifier”, on the same page native tokens
Oracle inputs Robust price indices: the oracle “does not depend on hyperliquid’s market data at all” The oracle page includes Hyperliquid spot at weight 1, left out only where main liquidity is elsewhere, such as BTC oracles
Portfolio margin eligibility The trading page: account value below $25M The FAQ: account value below $5,000,000 portfolio margin
Fees in closed PnL The entry price page puts the fee in closed PnL The info endpoint’s example opening fill shows closedPnl "0.0" beside a non-zero fee entry price and PnL
Topic What is known
Allowlisted HIP-3 dexes The docs, testnet only: isStar: true at creation and per-user {"proxy": [user, op]} operations. Testnet transactions replayed before the docs covered it used operation: "activate" on a live dex and a batch modifyApprovals; which shapes testnet accepts now is unresolved
Action 17 timing on mainnet Split and merge landed in the transaction’s own block on testnet; the mainnet timing window had no action 17 traffic, so mainnet is inferred, not measured
Borrow and repay through CoreWriter The docs list action 15 as supply and withdraw; one tool routes ops 2 and 3 as borrow and repay; measurements cover supply and withdraw only
HIP-4 slashing for late settlement Specified when HIP-4 was announced, disclaimed for the testnet release, not observed on mainnet

For the timing and failure findings in context, see What one HyperEVM transaction can and cannot do. Every silent failure, with its fix, is in Footguns, measured.