Changelog
API changes and deprecations for the Hypercall testnet.
See also: REST API Reference · WebSocket API · Authentication
v0.06-testnet — April 14–16, 2026
Breaking Changes
PUT /orderandPUT /bulk_order— new atomic order replacement endpoints. Cancels the existing order and places a new one in the same engine tick. If the cancel fails (order already filled or not found), the new order is not placed. Uses the newReplaceOrderEIP-712 signature type. Clients using the old cancel-then-place pattern should migrate.
Additions
API
GET /profile/realized-pnl— returns per-symbol realized PnL aggregated from fills and settlements. Accepts optionalcompetition_idparameter to scope results to a competition window.realized_pnlfield onGET /profile/trades— each fill row now includes the realized PnL attributed to that specific trade.net_depositsand attribution components onGET /profile/historical-pnl— historical equity snapshot points now include cumulative net deposits and P&L attribution breakdowns.prev_day_pxfield onGET /markets— markets payload now includes previous-day reference price per instrument.
UI
- Announcements megaphone — megaphone icon in desktop and mobile headers with unread count badge. Clicking opens a popover listing announcements (title, body, date, optional image/link). Per-wallet read/dismiss state.
- Edit & replace orders — desktop: pencil icon on open orders for inline price/size editing, checkmark submits, X cancels, row highlights amber during edit. Mobile: tapping an order shows Cancel and Update buttons.
- Settled positions on member page — new "Settled Positions" section between Positions and Trade History. Shows per-symbol realized PnL from expired options and closed trades with green/red coloring. See Settlement for how options settle.
- Realized PnL column in trade history — displays per-fill realized PnL with color coding; position-opening fills show a dash.
- API key management no longer flashes on load — agent list renders immediately instead of popping in after page load.
- Empty positions table hidden — when the user has no open positions, the positions section is hidden entirely instead of showing empty table headers.
- Connect buttons on empty state — restored missing wallet connect buttons on empty-state screens.
PnL
- P&L is now net of premium paid — realized PnL now accounts for the premium paid to open the position. Previously only showed gross payout. Example: a wallet previously showing +27K after accounting for $135K premium paid.
- Settled options grouped by underlying — attribution no longer lists every individual expired symbol; settled positions are collapsed into per-underlying buckets (e.g., "BTC (settled)").
- Live equity no longer drops to zero for OTM positions — the kink where OTM position value abruptly fell to zero on the live tail of the equity chart is fixed.
- Attribution visible for wallets with only expired positions — wallets with no open positions but settled options now correctly show PnL attribution.
Fixes
GET /profilereturning 500 — fixed for wallets with incomplete aggregate data.- Unrealized PnL stale after server restart — portfolios are now repriced immediately on restart instead of waiting for the next mark update.
- DTE off-by-one in payoff diagrams — fixed days-to-expiry calculation that shifted breakeven and max-loss lines.
- Focus steal — fixed focus stealing during UI interactions.
- Chart rendering improvements — various chart display fixes.
v0.05-testnet — April 11–13, 2026
Additions
Push Notifications
- Browser push notifications — subscribe to fill, liquidation, and settlement alerts via Web Push. New endpoints:
POST /push/subscribe,POST /push/unsubscribe,POST /push/preferences. All push endpoints require an EIP-712 wallet signature. Per-type toggles (fills, liquidations, settlements) available in desktop Settings and mobile account preferences. - Desktop toast notifications — real-time toasts for order fills and errors on the desktop layout.
Trading
- Greeks tab (desktop) — new tab in the bottom panel showing per-position delta, gamma, theta, vega, rho, and IV. Column headers have tooltips linking to Greeks reference. Per-underlying subtotal rows; portfolio total when positions span multiple underlyings.
- Sortable leaderboard columns — profit, volume, and efficiency columns on the leaderboard are now clickable to sort.
- Order form improvements — quick amount selectors, improved tooltips, responsive sizing.
- PnL chart on member page — member profiles now show an equity-over-time chart.
- HC/HL stats relocated to side pane — HyperCore and HyperLiquid statistics moved to a side panel.
- Zero-size order rows removed — order list no longer displays orders with zero size.
Ghost Mode
- Ghost mode — unauthenticated users can browse markets, order books, and charts without connecting a wallet. Settings page also accessible without auth. See the desktop guide for details.
- Dynamic per-asset favicons — browser tab icon shows a green ring with the active asset icon. Call/put variants display when viewing options.
Charts
- Vol surface visualization — interactive 3D vol surface viewer at
/risk/vol-surfacefor all listed underlyings. See Oracles for how vol surfaces are sourced. - Portfolio chart defaults to 5-minute interval — smoother rendering on newer accounts (8H view instead of 4D view).
- Chart updates on preference change — switching chart mode in preferences now takes effect immediately without a page reload.
API
- Expiry filter on
GET /options-summary— pass?expiry=YYYY-MM-DDto scope the response to a single expiration.
Account
- Username display names — wallets can set a display name shown on the leaderboard and member pages. Names take effect instantly (no moderator review). Editable inline from both desktop Settings and mobile settings.
Fixes
- Bid/ask sides inverted for some orders — fixed incorrect side assignment depending on on-chain order direction.
- Option chain load time reduced ~60% — faster loading via server-side expiry filtering and pre-fetched chart data for visible strikes.
- Market switching is now instant — no full page reload when switching underlyings on desktop.
- Tenor switching crash on desktop — fixed crash and slowness when switching between option tenors.
- Desktop account page scroll — long trade history content now scrolls properly.
- Mobile /preferences 404 — preferences page now reachable on mobile.
- Buying power updates after deposit — balance now updates immediately after a testnet faucet deposit instead of requiring a refresh.
- Trade gate shown when agent not set up — shows setup actions instead of a non-functional sign button.
- Error banners auto-clear — persistent error banners now dismiss themselves.
- Leaderboard layout on mobile — fixed scrunched values on mobile vs desktop.
- Redirect flicker eliminated — removed visible redirects when navigating to the app.
v0.04-testnet — April 7–10, 2026
See also: Week 4: Desktop Goes Live
Additions
API
GET /historical-theos— theoretical option prices over time, replacing raw last-trade price history. Configurable time intervals and limits. See REST API Reference.GET /historical-theos/batch— fetch theoretical price series for up to 50 instruments in one request. Parameters:instrument_names=A,B,C&interval=1h&limit=100.realized_pnlonGET /profile/trades— fills now return realized PnL.
UI
- Greeks now use theoretical marks — all Greeks calculations use theoretical prices instead of last-trade prices, significantly improving accuracy for illiquid strikes.
- Theoretical price chart on instrument pages — option contract pages display a historical theoretical price chart (replaces raw trade price history).
- Inline position on instrument page — your open position for the active instrument is shown directly on the contract page.
- Empty state improvements — better copy and layout for empty charts and empty states.
Fixes
- Faucet deposit cap — testnet faucet now respects remaining per-wallet allowance instead of a fixed max.
GET /portfoliointermittent 503s — fixed intermittent server errors on the portfolio endpoint.- Loading spinners — eliminated phantom loading spinners during page load.
GET /profile/tradesreturning 500 — fixed for wallets with fills.- Member page layout shift — fixed alignment shift on the member page.
- Default chart label — clarified that default chart preference applies to assets.
v0.03-testnet — April 1–6, 2026
See also: Week 3 Product Update
Breaking Changes
- Portfolio margin model changed — Initial Margin formula changed from
scanning_risktomax(scanning_risk, option_floor) + gamma_overlay. Three new fields in REST and WebSocket portfolio responses:scanning_risk,option_floor,gamma_overlay. Available balance is nowequity - total_margin_used(wascash - total_margin_used). Equity now includes perpetual unrealized PnL. GET /risk/gridchanges — removedinclude_open_ordersparameter. Scenario model changed from single-axis{scenario_type, value}to combined shocks{spot_shock_pct, vol_shock_pct, pnl_weight, is_tail}. Worst-case PnL is now weighted.
Additions
Desktop
- Desktop trading layout — full desktop shell with multi-panel trade view, keyboard navigation, instrument price chart, compact option symbols, and click-to-navigate from positions/orders to instruments.
API
- Option instruments now include underlying symbol and price — option instrument responses expose their underlying asset. See REST API Reference.
Competition & Leaderboard
- Competition system — new endpoints:
GET /competitions,GET /leaderboard,GET /competition-metric-ranks,POST /submitUsernameRequest. Monthly schedule (1st to 1st at 4:00 PM ET). Testnet competition with real prizes (300/$200 in SYN). Market makers excluded from rankings. - Leaderboard UI — rank badge ("Rank #X" or "Trade to win" CTA), prize breakdown card, Hyperliquid Names integration, formatted option symbols ("04/10 $59,000 Call"), FIFO lot P&L, relative timestamps (5m, 2h, 3d).
- Markdown in competition descriptions — competition descriptions support markdown formatting.
Portfolio
- Portfolio margin — cross-margining across correlated positions. Expired instruments excluded from gamma overlay.
UI
- Compact option symbols — human-readable format throughout the UI: "04/10 $59,000 Call".
- Max button on order form — one-click max size based on available margin.
- Thousands separators — all price and size fields display commas.
- Click position/order → instrument — tapping a position or order row navigates to the corresponding contract.
- Preferences page — tooltips, badge cycling, and synced preference state across sessions.
Fixes
- Chart UTC centering — asset charts center on UTC boundaries; timeframe transitions stabilized.
- Swipe gestures (mobile) — fixed erratic swipe-to-cancel and swipe navigation behavior.
- Desktop URL stripping — removed
/mobileprefix from URLs on desktop; strike selection fixed.
v0.02-testnet — March 24–31, 2026
See also: Week 2 Product Update
Additions
Charts
- Historical PnL chart — equity-over-time chart on the home page with interactive crosshair. Touch/click to inspect any point; shows timestamp and updates balance display.
- Asset chart — per-asset spot price chart with y-axis clamped to the visible period range.
Order Management
- Section headers — positions, orders, and history sections have distinct headers for easier scanning.
- Swipe-to-delete orders (mobile) — swipe left on an open order to cancel.
- Cancel order confirmation — dedicated cancel-order dialog.
- Click order row → contract page — tapping an order navigates to the instrument detail view.
- Updated open order appearance — refreshed styling for open orders.
Connectivity
- WebSocket disconnect banners — visible banners when the WS feed drops or the backend is unreachable.
Greeks
- Position Greeks on asset page — aggregate delta, gamma, theta, vega on the asset detail page.
- Contract Greeks on contract page — per-position Greeks on the contract view.
- Breakeven prices across option types — breakeven prices calculated and displayed for calls, puts, and spreads.
Trade History
- Execution time on
GET /profile/trades— trade history rows now include the fill timestamp. - Options chain expiry persistence — selected expiry saved in URL query params and restored on navigation.
- Option instruments include underlying symbol and price — option instruments expose their underlying asset in responses.
Account
- Username system — set a display name for your wallet address, shown on leaderboard and member pages.
Fixes
GET /profile/tradesreturning 500 — fixed for wallets with fills.- Default position display order — positions default to showing value, then PnL, then cost basis (was inconsistent).
- Order footer shows time-to-expiry — added TTE display; 1-second signing delay prevents accidental double-submits.
- Logout on mobile — session state properly cleared on sign-out.
- Light mode background — fixed background color in light mode.
- Smoother page transitions — reduced visual stutter during navigation.
- Swipe background — fixed background rendering during swipe interactions.
v0.01-testnet — March 16–23, 2026
See also: Week 1 Product Update
Additions
Theme & Appearance
- Midnight dark mode — new high-contrast dark theme alongside the existing light mode.
- Auto theme mode — theme automatically matches device light/dark preference. New users default to auto.
Dashboard & Stats
- HL & HC stat fields — toggle between Hyperliquid-specific and Hypercall-specific statistics on the dashboard.
- Put/call ratio — put/call ratio added to the Hypercall stats panel.
- Outcome badges — visual badges for trade outcomes (profit, loss, expired worthless, etc.) with pie chart in position header.
Options Chain
- Strike sorter and selection persistence — strike prices sortable; selection persists across sessions.
- Price target seeding — price target page seeds with the current underlying price instead of blank.
- Underlying price normalization — consistent underlying price display across all pages, including DEX perp data.
Order UX
- Cancel message for filled/expired orders — cancel attempts on already-filled or expired orders show "This order has already been completed or cancelled" instead of a raw error.
Preferences
- Preferences page — tooltips, badge cycling, and synced preference state across sessions.
Fixes
Connectivity
- Data refreshes on WebSocket reconnect — orders, fills, and portfolio re-fetched on WS reconnect instead of showing stale data.
- WS reconnect delay — backoff timer now resets after a healthy connection. Previously never reset, causing all reconnects to wait 30 seconds after a few normal disconnects.
Orders
- Ghost orders on expired instruments — orders on settled instruments are now properly cleaned up, preventing "Orderbook not found" errors on cancel.
- Negative cash balance rejection — BUY orders that would make cash balance negative are now rejected at submission. Rejection message: "Insufficient cash (Standard)". Can be bypassed for risk-reducing buy-to-close orders. See Standard Margin.
UI
- Price target animation — fixed bouncing/stuck animation on the price target page.
- Mobile asset chart clipping — fixed quick action clipping on mobile asset chart.
- Mobile PWA loading hang — fixed an issue causing the mobile PWA to hang on "Loading...".
Known Issues
Staging behavior and known issues are communicated with access; contact the team for details.
Versioning Policy
Stability labels:
- Stable: Router paths and core request/response shapes unlikely to change
Breaking changes: Will be documented here with migration guides.