๐Ÿ”ง Troubleshooting & Fixes

Hyperliquid SDK: HIP-3 dex Param Fix (2026)

โš ๏ธ Disclosure: Some links on this page are affiliate links. If you sign up through them, I may earn a commission โ€” at no extra cost to you. I only review tools I actually use.
About this guide: I'm Lawrence, the writer behind supa.is. Between February and May 2026 I've published 150+ articles on supa.is across crypto and brokerage tooling โ€” including 80+ Hyperliquid-specific guides (recent examples: Hyperliquid HIP-3: user_fills dex Parameter Fix, Hyperliquid Python SDK Tutorial: Build a Bot, Hyperliquid API Rate Limits & User Limits)). The most-repeated reader question across that Hyperliquid archive is exactly how to diagnose and work around SDK bugs that surface when HIP-3 dexes enter the picture, which is why I'm publishing this standardized guide instead of answering one-off.

If your Hyperliquid bot suddenly started failing on user_state, open_orders, or all_mids after you pointed it at a HIP-3 dex, you are not imagining it. GitHub issue #286 in the official hyperliquid-python-sdk repository documents exactly this: the dex parameter is missing on those three read endpoints when HIP-3 dexes are involved. This guide breaks down what the bug is, why it exists, which endpoints are affected, and what your options are until the SDK ships the fix.

The Symptom: What Users Actually See

The issue is narrow but annoying. When a bot calls one of the three affected endpoints while operating against a HIP-3 dex, the request does not carry the dex parameter it needs. Depending on how the backend handles the omission, you get one of two outcomes:

  1. An error response, because the endpoint cannot determine which dex's state you want.
  2. Silent fallback to the default dex, which is worse in a way: your bot reads state for the wrong market and keeps trading on stale or irrelevant data without raising an exception.
The three affected endpoints are: All three are read-only status calls, which is what makes the bug sneaky. Nothing about your order flow breaks immediately; your bot just starts making decisions off the wrong picture of the world. If your strategy logic depends on open_orders for order management or on user_state for margin checks, a silent fallback can produce positions you never intended.

Why It Happens: HIP-3 and the dex Parameter

To understand the bug you need the one-line version of HIP-3: Hyperliquid's architecture now supports multiple DEXes, each with its own order book and market set, and the API distinguishes them with a dex parameter. Before HIP-3, there was effectively a single main dex, so most API calls didn't need to specify which one they meant. The parameter existed but was optional in practice.

HIP-3 changed that. Once a second (or third) dex is live with its own markets, every endpoint that returns dex-specific data must be told which dex to query. The Python SDK got the parameter wired into some of its calls but not all of them. Issue #286 identifies the gap: user_state, open_orders, and all_mids were never updated to forward the dex argument, so any bot targeting a HIP-3 dex through those calls hits the omission.

This is a classic "the world changed, the wrapper didn't" bug. The exchange backend moved to a multi-dex model, and the SDK's convenience layer lagged behind on a handful of endpoints. It is not a security issue and not a funds-safety issue: your keys, your orders, and your balances are unaffected. It is a data-correctness issue confined to read calls.

Affected Endpoints vs. Ones That Work

Here is the current state of play, as of 2026-09:

EndpointPurposedex parameter forwarded?Status
user_stateAccount margin, positions, balancesNoBroken for HIP-3 dexes
open_ordersResting ordersNoBroken for HIP-3 dexes
all_midsMid prices across marketsNoBroken for HIP-3 dexes
user_fillsFill historyNo (separate fix)Covered in its own guide
One row deserves a callout: user_fills had the same class of bug, and it was documented and addressed in a sibling fix that I covered in Hyperliquid HIP-3: user_fills dex Parameter Fix. If your bot also reads fill history for HIP-3 dexes, check that article too โ€” the pattern is identical, and the fix path is the same.

The practical takeaway: if your bot only trades the main dex, none of this touches you. The bug activates exclusively when you pass a HIP-3 dex identifier. Most bots in the wild still don't, which is why the issue stayed narrow rather than becoming a headline.

How to Confirm You're Hitting the Bug

Before you change anything, confirm the diagnosis. Three checks, none of them requiring a live trade:

1. Check which dex your bot targets. If your config or strategy code never references a HIP-3 dex identifier, you cannot be hitting this bug. The omission only matters when a non-default dex is in play. 2. Check your SDK version. Look at the installed hyperliquid-python-sdk version and compare it against the repository's release history. Issue #286 is the authoritative reference for which version introduced the gap and whether a fix is queued. 3. Inspect the actual request. If your bot logs outgoing API payloads (or you add a temporary log line), you can see directly whether the dex field is present on user_state / open_orders / all_mids calls. Absent field plus a HIP-3 dex target plus wrong or errored responses = confirmed.

I'd do all three before touching code. Half the "SDK is broken" reports I see turn out to be a misconfigured dex target or a stale SDK install, and the fix for those is a config edit, not a code change.

The Fix Path and Your Options

The resolution path, per the issue thread, is a SDK update: the maintainers need to thread the dex parameter through the three affected calls the same way it was done for the rest of the API. Until that ships, you have a few options, roughly in order of how I'd rank them:

๐Ÿ’ก Hyperliquid

Like what you're reading? Try it yourself โ€” this link supports ChartedTrader at no cost to you.

Start on Hyperliquid โ†’
๐ŸŽ You receive: 4% fee discount on first $25M volume ยท per account, lifetime

Option A: Stay on the main dex. If your strategy doesn't strictly require HIP-3 liquidity, the simplest fix is to not use the affected endpoints against a HIP-3 dex at all. Zero code changes, zero risk. Option B: Pin and wait. If you're blocked on a HIP-3 dex, pin your SDK version, track issue #286 for the fix commit, and upgrade when it lands. This is the boring-but-correct path for most production bots. Option C: Work around it at the request layer. If you genuinely need HIP-3 dex state today, the workaround is to stop relying on the SDK's convenience wrappers for these three calls and issue the underlying exchange requests with the dex parameter set explicitly. This is more fragile โ€” you're now responsible for matching the wire format yourself โ€” so treat it as a bridge, not an architecture.

One honest caveat on Option C: I have not run this workaround in a live account, and neither has anyone I can point you to with a verified reproduction. The issue thread is the source of truth for the exact request shape; do not trust third-party blog posts that guess at it. If you go this route, test against a tiny position first.

Since you're now inside Hyperliquid SDK troubleshooting territory, three adjacent issues come up constantly in the same conversations:

Risk Warning

Risk Warning: Crypto trading involves substantial risk of loss. Never invest more than you can afford to lose. This is not financial advice. A bot reading the wrong dex's state can place orders you never intended to place โ€” the bug in this article is a data-correctness issue, but acting on bad data with real capital is how small bugs become real losses.

FAQ

Does this bug affect my funds or my private keys?

No. Issue #286 is about read-only status calls missing a parameter. Your keys, balances, and order placement are unaffected. The risk is acting on incorrect state data.

Which endpoints are broken?

user_state, open_orders, and all_mids when targeting a HIP-3 dex. user_fills had the same class of bug and is covered separately in the user_fills fix guide.

I only trade the main dex. Do I need to do anything?

No. The omission only matters when a non-default dex identifier is in play. If your bot never references a HIP-3 dex, the bug cannot activate.

Is there a workaround if I need HIP-3 dex state right now?

Yes, but it's fragile: bypass the SDK wrappers for those three calls and send the underlying requests with dex set explicitly. Use it as a short-term bridge and verify the request shape against the issue thread before trusting it.

When will the fix ship?

That's up to the SDK maintainers. Track issue #286 for the fix commit and upgrade your SDK when it lands. Until then, the main-dex path and the pin-and-wait path are the safe options.

---

If you're building on Hyperliquid and want to start with a referral that earns you a 4% fee discount on your first $25M of volume (note: Vaults and sub-accounts are excluded from the discount), you can Start on Hyperliquid. This is an affiliate link โ€” we may earn a commission at no extra cost to you. For more on how Hyperliquid's fee structure actually works under the hood, see Hyperliquid Maker vs Taker Fees: How Limit Orders Save You Money.

Continue with Hyperliquid

Browse the Hyperliquid guide hub for the complete user journey.

Official reference: Hyperliquid documentation.

๐Ÿงฎ Free Hyperliquid calculators

Fee Calculator โ†’
Hyperliquid vs centralized exchange fee comparison
PnL & Liquidation โ†’
Perp PnL + liquidation price
Position Size โ†’
Risk-aware position sizing for HL perps
Hyperliquid

Ready to get started? Use the link below โ€” it helps support ChartedTrader at no cost to you.

Start on Hyperliquid โ†’
๐ŸŽ You receive: 4% fee discount on first $25M volume ยท per account, lifetime
๐Ÿ“ˆ

About the author

I'm a systematic trader running live strategies on IB (USDJPY momentum) and Hyperliquid (crypto perps). Every tool reviewed here is something I've used with real capital. Questions? Reach out.

๐Ÿ“š Related Articles

๐Ÿ”Œ
API & Developers

Hyperliquid HIP-3: user_fills dex Parameter Fix (2026)

Fixing the missing dex parameter in Hyperliquid's user_fills and user_fills_by_time endpoints. A practical guide to HIP-3 API changes, workarounds, and troubleshooting for your trading bots.

July 11, 2026 โฑ 9 min read
๐Ÿ”ง
Troubleshooting & Fixes

Hyperliquid Spot Meta Array Mismatch Fix (2026)

Hyperliquid spotMetaAndAssetCtxs returns 320 assets while your code expects 711? Here is why the array length mismatch happens and how to make the Python SDK resilient.

August 24, 2026 โฑ 11 min read
โš–๏ธ
Comparisons

Hyperliquid Prediction Markets: HIP-4 vs Polymarket (2026)

Compare Hyperliquid HIP-4 prediction markets with Polymarket. We analyze liquidity, fees, settlement speed, and the on-chain advantage of trading events on HyperEVM versus off-chain platforms.

June 7, 2026 โฑ 9 min read