Reference
What is built
What runs today, what does not, and the risk you are taking if you trade perpetuals at all.
Pre-launch. Market data is live Hyperliquid mainnet. Order placement is wired but NOT ARMED in this build, so the fills, position, PnL and volume shown in the terminal are simulated against the real price. Amber outline means simulated. It is not armed because the builder address is still a placeholder. Until that address is set, the terminal refuses to open on mainnet. What is built, in full.
The short version
The prices are real. Orders are wired and not armed.
Market data on the chart, the order book and the header is live Hyperliquid mainnet. Order placement is wired: the terminal can sign an order, attach the builder code to it, and post it to Hyperliquid. It has done that on testnet. It is not armed in the build you can open, so the fills, the position, the unrealized total and the volume that drives your tier are all simulated against that real price.
- Market data
- live mainnet
- Order placement
- wired, not armed
- Wallet connect
- real
- Account state
- from the venue, once connected
- Orders filled, to date
- 0
Why it is not armed
Arming needs two things: a signer the venue recognizes, and a builder address to route the fee to. The first exists. The second does not.
- The builder address is a placeholder
- Every order action is checked for the builder code after it is built and before it is signed, on every path, including retries, TWAP slices, ladder rungs and both legs of an OCO. A placeholder fails that check, so no order can be signed for the venue until the real address is set by hand. On mainnet this is deliberately fatal: until the address is set, the terminal refuses to open and shows a full-screen "did not start" message with the reason. A build that would route the fee to nobody does not run. On testnet the same placeholder keeps execution in dry run, and the reason is on every amber panel.
What has actually reached Hyperliquid
Signed orders carrying the builder code have been posted to Hyperliquid testnet, from a throwaway verification key that the build refuses to use anywhere but testnet. Each one was rejected because the account behind the key held no funds.
That rejection is useful. It is the venue confirming the bytes were well formed and correctly signed. It says nothing about a fill.
No order has ever filled, on testnet or anywhere else, and none has been sent to mainnet. Funding a testnet account is gated on mainnet activity, so the first real fill is waiting on that.
The terminal says this itself, per panel
Every panel downstream of execution carries an amber outline and a label while its numbers are simulated. Not once at the top: a single banner stops being read within a day, and the panel showing an unrealized total is the one that has to say it.
There are two conditions, not one, and two of the four panels wait on the second. Real fills do not make a real position. A position is the venue's number only when the account state is read from the venue for a connected wallet, and until then it is arithmetic on the fills this tab happened to see. This build has the venue account reader wired in, and it only reports the venue's numbers while a connected account's stream is up and current. On load, before a connect, while it reconnects and while its last snapshot is stale, it says local.
Progression is never the venue's number in this build, whatever is connected. Tier, XP and the lifetime record behind them are this product's own program state, and the exchange does not know them.
| Panel | Says now | The venue's numbers when | In this build |
|---|---|---|---|
| Order entry | simulated fills | Execution is armed | Simulated: execution is not armed |
| Position | simulated position | Account state comes from the venue | The venue's, once you connect and the account stream is current |
| Working orders and positions | simulated orders | Execution is armed and account state comes from the venue | Simulated: execution is not armed |
| Progression | simulated volume | Never | Never in this build: program state. |
For a script or a test driver, the page publishes the same state as
window.__ctSim. On load, before any connect, it
reads { execution: "simulated", marketData: "live", armed: false, accountState: "local" }, plus a reason string
when there is one. A position card is genuine only when
accountState is "venue",
and a fill only when it carries source: "venue" and
a numeric order id. execution: "live" on its own
does not make a number the venue's.
What runs today
- Live market data. Candles, depth, trades, funding and the mark, from Hyperliquid mainnet, including switching market: the chart and the book are rebuilt against the venue when you pick a new one.
- The execution panel and all nine order types, each with its own composer, validation, submission path, working-order row and tick engine. Nothing is a stub and nothing is behind a flag.
- Order submission. Each of the nine types becomes a signed, builder-coded request to Hyperliquid, along with attached TP and SL exits, cancel, and modify. The venue's answer comes back into the same panels. Request numbering survives a reload so two tabs do not collide, and an answer the terminal cannot classify is shown as unknown, never as a fill or a rejection.
- The press-and-hold charge, exactly as Order entry describes it.
- The settings panel: the intensity dial, screen shake, sound and the risk controls. Settings covers it.
- The chart, its ladder gesture, draggable levels and three indicators. The order book, the market selector, the working orders panel, alerts and progression.
What does not run yet
| Thing | State |
|---|---|
| Armed execution in a real browser | Wired, not armed. See why |
| Multi-market, fully | Partial. Switching market rebuilds the chart, the book and the header against the venue. The selector's own 45-market list and the numbers inside it are static, and the position and orders panels do not follow |
| Account and margin summary | Not built. Account value, margin usage, maintenance margin and cross versus isolated |
| Client-managed orders while the tab is closed | Not built, and needs a backend. See Order types |
| Deposits and fiat | Built, deliberately unconnected. This product trades an account you funded elsewhere |
| Mobile | Deferred. A phone terminal is its own product, not a breakpoint. There is no mobile wallet connection either |
| Terms and privacy pages | Not written |
Loose ends worth naming
- Clicking the order book does nothing
- The book announces the price you clicked and nothing in the terminal listens for it, so the order form is not populated. Documented on The interface so that nobody learns a gesture that has no effect.
- Alerts are silent and local
- They fire as a visual event in an open, visible tab. No sound, no desktop notification, no push. The product does not currently say this anywhere in its own interface, which is why The interface says it here.
- TWAP was documented as venue-held and is not
- Until 2026-09-29 the terminal told you Hyperliquid ran your TWAP and that it kept slicing with the tab closed. Both halves were false: the slices come off a local interval like the other three client-managed types. Hyperliquid does expose a native TWAP action and it is not wired to this one. Fixed in the product and on Order types.
- Some things do not survive a reload
- Chart timeframe, order book tick grouping, and your market favorites and sort are all per session. Progression, alerts and chart indicators do persist.
The part that is not about software
Perpetual futures are leveraged instruments. Positions can be liquidated, the whole of a margin balance can be lost quickly, and funding is charged and received continuously while a position is open. Most people who trade these lose money.
This documentation describes how controls behave. It is not advice, not a prediction, and not a claim about what any of it will do for your account. It is written to be checkable against the code, and the build refuses to publish a page that asserts something the source does not say. That is the only thing it can honestly promise you.
There is no geofence. Whether you may lawfully trade leveraged perpetual futures where you live is a question this documentation does not answer.