Hyperliquid TWAP and iceberg orders: a large order sliced into small timed pieces, most of it hidden below the surface

How Hyperliquid TWAP orders work

A large market order walks through several price levels and fills worse than the screen showed; a large resting limit order shows everyone your size. A TWAP (time-weighted average price) order spreads execution over time instead. On Hyperliquid it is native, in the Pro menu of the order form, and the docs define it precisely:

  • Execution target. At any moment the TWAP aims to have filled elapsed time ÷ total time × total size.
  • Interval. Suborders go out at a fixed interval calculated from your size and running time, as often as every 30 seconds for large orders over short durations.
  • Limits. Running time 5 min–7 days; minimum total size $100; minimum per suborder $10.
  • Slippage cap. Each suborder has a maximum slippage of 3%.
  • Catch-up. If suborders do not fully fill, later suborders grow to catch up, but never beyond 3× the normal suborder size; if too many miss, the TWAP can end short of the full size.
  • Options. Randomize varies each slice's size by up to ±20%; Reduce Only makes an exit TWAP unable to flip you; Trigger Price arms the TWAP only when the mark price reaches a level; Max Price (buys) or Min Price (sells) terminates it if the mark runs past your limit, and the rest does not resume.
  • Network upgrades. Like normal market orders, suborders do not fill during the post-only period of a network upgrade.
TWAP (docs examples)SubordersSize eachInterval
$10,000 over 1 hour~121~$8330 seconds
$10,000 over 4 days~1,000~$10~6 minutes

Source: Hyperliquid docs, trading/order-types (re-read October 22, 2026). The long example already sits at the $10 suborder floor, so a $100 TWAP can never have more than about ten slices. Trigger Price, Max/Min Price, the 7-day maximum and dynamic intervals arrived with the "TWAP order improvements" announcement of August 2, 2026.

How to place a TWAP on Hyperliquid, step by step

  1. Open the market (for example app.hyperliquid.xyz/trade/ETH) and connect your wallet. No account yet? Join with HOLYGRAIL first and deposit USDC.
  2. In the order form, click Pro and choose TWAP. Pick Buy / Long or Sell / Short.
  3. Enter Total Size (in the coin, or use the % slider). It must be worth at least $100.
  4. Set Running Time in days, hours and minutes (5 min–7 days).
  5. Tick Randomize for irregular slices, and Reduce Only if the TWAP is closing a position.
  6. Open Advanced Settings: set a Max Price (buy) or Min Price (sell) as a circuit breaker, and optionally a Trigger Price.
  7. Check the Runtime and Size per Suborder lines, then submit and sign. Follow it in the TWAP tab under the chart, which now has Active, History and Fill History views; Terminate stops future slices.
Hyperliquid ETH-USDC trade page with the TWAP tab open under the chart showing its columns
The ETH-USDC trade page on September 25, 2026 with the TWAP tab open under the chart: Market, Size, Executed Size, Average Price, Running Time / Total, Trigger Price, Max/Min Price, Reduce Only and Terminate.

Worked example. To buy $50,000 of ETH over 2 hours without chasing a spike, set Total Size to about 20.5 ETH (ETH's mark was $2,442 on October 22, 2026), Running Time 2 hours, Randomize on, and a Max Price 1.5% above the current mark. At the base tier the slices cost 0.045% × $50,000 = $22.50 in fees ($21.60 with a referral code). If ETH jumps through your Max Price, the TWAP stops and you keep whatever filled. Funding is paid every hour on the part already filled: at the 0.00125% hourly baseline that is $0.30 a day per $1,000 of position (funding explained).

Hyperliquid TWAP fees

TWAP suborders execute like market orders, so every slice pays the taker fee. When we sampled 4,272 TWAP slice fills from the API on October 22, 2026, every one was a taker fill, charged at that account's taker rate. There is no separate TWAP charge.

Order typeFee sideBase rateWith HOLYGRAIL (first $25M)Fees on $100,000
TWAP on a perp (all suborders)Taker0.045%0.0432%$45.00 ($43.20)
TWAP on spot (e.g. HYPE/USDC)Taker0.070%—$70.00
TWAP on a growth-mode HIP-3 market (e.g. xyz:TSLA)Taker0.009%0.00864%$9.00 ($8.64)
Scale or Chase (resting fills)Maker0.015%0.0144%$15.00 ($14.40)

Tier-0 rates from the Hyperliquid fee schedule (verified October 22, 2026). HYPE staking takes a further 5–40% off. Full tables in Hyperliquid fees explained.

The gap matters at size: moving $1M through TWAP costs $450 at tier 0, through a Scale ladder that fills completely $150. Many desks combine them: a Scale ladder for most of the size, and a short TWAP to finish whatever did not fill.

How to track TWAPs on Hyperliquid: trackers and buy pressure

Because a TWAP is an on-chain action, anyone can see who placed it, on which market, which side, the total size and the running time. That is what "Hyperliquid TWAP tracker" sites are built on. Hyperliquid's own API, however, has no request that lists every active TWAP: the TWAP requests and feeds all need a user address (asking without one returned an error on October 22, 2026). The trackers therefore read twapOrder actions from the chain and then look up each address's progress.

TrackerWhat it showsLogin
HypurrScan dashboard (hypurrscan.io/dashboard)Active TWAPs table (side, value, token, amount, progress) with spot / perps / HIP-3 filters, and a "TWAP Buy Pressure" widget for the next hour and next 24 hoursNo
ASXN Hyperscreener (hyperscreener.asxn.xyz/twaps)Count and value of active buy and sell TWAPs, split into completed and pending, with duration and progress per orderNo
Hyperdash terminal, "Current TWAPs" tabRunning TWAPs on the market you are viewing, next to Top Traders and Position ChangesNo
Hyperliquid API (twapStates, userTwapSliceFills)Status and fills of any one address you name; no market-wide listNo key

All loaded without a login on October 22, 2026. HypurrScan's old /twap page now shows a 404 page; its TWAP views moved to the dashboard. More tools for following large wallets: Hyperliquid whale tracker, Hyperdash review, HypurrScan guide.

HypurrScan dashboard with an Active TWAPs table listing side, value, token, amount and progress, and a TWAP Buy Pressure widget for the next hour and next 24 hours
hypurrscan.io/dashboard on October 22, 2026 at 02:38 UTC, logged out (wallet addresses blurred by us): the Active TWAPs table and the TWAP Buy Pressure widget, here for all markets.

What "TWAP buy pressure" means, with a dated example

Buy pressure is the dollar value active buy TWAPs are scheduled to buy over the next hour (or day), minus what sell TWAPs are scheduled to sell. We built it ourselves for HYPE at 02:32 UTC on October 22, 2026: HypurrScan's list of recent TWAP placements to find the addresses, then Hyperliquid's API for each TWAP's status and filled size.

HYPE (perp + HYPE/USDC spot)Buy TWAPsSell TWAPsNet
Scheduled for the next hour$725,992$432,974$293,018 buy
Next hour, without one hedged pair$483,158$190,286$292,872 buy
Unfilled remainder$4M$4.2Mmore selling
Active TWAPs497—

Our calculation, October 22, 2026 02:32 UTC; next hour = the lesser of what remains and size × 60 ÷ running minutes, valued at the mid price. The hedged pair: one address bought 48,780 HYPE on spot and sold the same amount on the perp, 34 seconds apart.

How to read it. The headline number was positive, yet the largest two TWAPs that morning were a hedge (spot bought, perp sold), which is not demand at all, and over their full running time sell TWAPs had more left to sell than buy TWAPs had to buy. Read buy pressure as scheduled flow, check whether the big orders are paired across spot and perp, and remember a TWAP can be terminated at any minute. Trackers also disagree: at almost the same time, HypurrScan's all-market widget and ASXN's totals gave different pictures because they count different sets of TWAPs. None of this is a trading signal.

Your TWAP is public (and why that can help)

On a centralized exchange, a TWAP strategy lives inside the exchange and other traders only see the child orders. On Hyperliquid the twapOrder action is recorded with your address, the market, side, total size, running time and flags, and the public API returns any address's TWAP states and slice fills without a key. Slices fill immediately, so the order book never shows your total; what people cannot see in advance is the exact size of each randomized slice.

Why visibility can work in your favour. A 2026 study by Barone and Lillo (arXiv 2606.15715) treated Hyperliquid TWAPs as a natural experiment in "sunshine trading", the theory that announcing a large order attracts liquidity instead of predators. Comparing 465,000 visible TWAP executions with 4.3 million hidden metaorders reconstructed from address-level data, the authors found that visible TWAPs had lower execution costs and a smaller permanent price impact; while a TWAP was active, displayed depth rose and the book tilted toward the side absorbing it.

  1. Do not use TWAP as a stealth tool. Randomize varies slice size; it does not hide the order.
  2. Always set a Max/Min Price. The per-slice 3% cap limits damage on one slice; only Max/Min Price stops the whole program if someone pushes the price away.
  3. Give size time. A longer running time with smaller slices lets market makers lean in instead of you walking the book.

Hyperliquid TWAP through the API (with code)

  • Place: POST to https://api.hyperliquid.xyz/exchange with an action of type twapOrder: a asset, b isBuy, s size, r reduceOnly, m minutes, t randomize. A success returns a twapId.
  • Cancel: action twapCancel with a (asset) and t (the twapId).
  • Track: the info request userTwapSliceFills returns up to the 2,000 most recent slice fills; over WebSocket, subscribe to twapStates (which now takes a dex field for HIP-3 markets), userTwapSliceFills and userTwapHistory. The docs list four statuses (activated, terminated, finished, error); on October 22, 2026 the API also returned stopped (Max/Min Price hit) and waitingForTrigger, and a twapHistory info request (not described in the info-endpoint docs) returned an address's TWAPs with their trigger and stop prices.
  • Trigger and max/min prices are app features: the documented twapOrder schema still has only the six fields above. Do not send undocumented fields from production code.
  • No SDK helper. The official Python SDK (0.24.0) has order and bulk_orders but no TWAP method (GitHub issue #212 is still open). Build the action and sign it with sign_l1_action:
from hyperliquid.exchange import Exchange
from hyperliquid.utils import constants
from hyperliquid.utils.signing import sign_l1_action, get_timestamp_ms

ex = Exchange(wallet, constants.MAINNET_API_URL)   # wallet: eth_account LocalAccount (use an API wallet)
asset = ex.info.name_to_asset("ETH")

# keep this key order: the signature hashes the action exactly as sent
action = {"type": "twapOrder",
          "twap": {"a": asset, "b": True, "s": "5", "r": False, "m": 120, "t": True}}
nonce = get_timestamp_ms()
sig = sign_l1_action(ex.wallet, action, ex.vault_address, nonce, ex.expires_after, True)
print(ex._post_action(action, sig, nonce))   # ... "running": {"twapId": ...}

# cancel later: {"type": "twapCancel", "a": asset, "t": twap_id}

Buys 5 ETH over 120 minutes with Randomize on. s is a string rounded to the coin's size decimals; the total must be worth at least $100. _post_action is an internal SDK method, so pin your SDK version. Test on testnet first. More bot plumbing: Hyperliquid trading bot guide; key safety: API wallet security.

TWAP vs VWAP, with a worked example

TWAP spreads an order evenly over time; VWAP (volume-weighted average price) spreads it in proportion to market volume, more in busy hours and less in quiet ones. Both are also benchmarks: execution desks judge a fill by how far it landed from the window's VWAP. Hyperliquid has a native TWAP but no VWAP order; you can approximate VWAP with several shorter TWAPs.

From 30 days of hourly BTC candles (Hyperliquid API, 720 hours to 14:00 UTC on September 25, 2026), the hours from 12:00 to 16:00 UTC averaged $181.2M, $221.2M, $295.9M and $197.2M of notional. A plain TWAP buys $25,000 of a $100,000 order in each of those hours; a VWAP-style plan of four one-hour TWAPs sizes them at about 20%, 25%, 33% and 22%. Fees are identical (every slice is a taker fill); the difference is market impact, which matters when the order is a meaningful share of the book, on altcoins with a sharp daily profile, or when a run crosses quiet hours (04:00 UTC averaged $54.8M). To judge a finished TWAP, compare the TWAP tab's Average Price with the VWAP indicator on the chart for the same window.

Scale, Chase and the trailing stop

  • Scale places "multiple limit orders in a set price range": total Size, Start and End price, Total Orders, Size Skew, Reduce Only and TIF. Nobody sees your total, only a ladder of small orders, and resting fills pay the maker fee (0.015%, or 0.0144% with a referral code). The lower orders may never fill.
  • Chase is a post-only (ALO) limit that rests one tick inside the best bid or ask and re-prices until it fills, up to a Max Chase Distance. It runs in your browser tab (closing it stops the chase), and up to 5 can be active at once.
  • Trailing Stop (perps only) fires a market order when the mark retraces from its best level by a set distance or percentage, with an optional activation price. It is in the app and, as a separate trailingStop action, in the API too. See the trailing stop tutorial and the full order types list.

Iceberg orders on Hyperliquid: why there are none, and what to do

An iceberg order shows a small "tip" on the book and refills it from a hidden reserve. On Hyperliquid every order is a public on-chain object, the API's order action has no hidden or display-quantity field, and the docs' list of order types has no iceberg (October 22, 2026). Some third-party front-ends sell an iceberg or "stealth TWAP" that runs on their own servers for a builder fee (Hyperdash is one); each child order they send is still an ordinary public order. On Hyperliquid itself you have three substitutes:

  1. TWAP if the whole size must be done within a window: one slice at a time on the book, but the total is public, and it pays taker fees.
  2. Scale ladder for maker fees when you can wait for the price to come to you: every level is visible, the total is not stated anywhere.
  3. A DIY iceberg via the API for one price level, maker fees and no announced total: post a post-only order for the display size, refill after each fill (optionally varying size and timing), cancel on a stop condition. Each slice remains public and linked to your address. Rate limits are not a problem at normal sizes: each address gets 1 request per 1 USDC traded on top of 10,000 requests, and can hold 1,000 open orders plus 1 per $5M of volume (up to 5,000).

Which tool for which job

You want to…UseSettings that matter
Get fully in or out within hours at the average priceTWAPRandomize on; Max/Min Price 1–2% away; Reduce Only for exits
Accumulate below the market over daysScaleWide range, 10+ orders, Size Skew toward the better prices
Maker fees but fill soonChaseKeep the tab open; set Max Chase Distance
Protect profit on a trendTrailing StopRetracement wider than normal noise
One price level, no announced total, maker feesAPI iceberg scriptSmall visible slice, post-only, randomized refill
Start buying only after a breakoutTWAP with Trigger PriceTrigger above resistance, Max Price above that

A single market order on Hyperliquid can be at most $30M on markets with 25x or more max leverage, $5M at 20–25x, $2M at 10–20x and $500,000 below that; limit orders can be 10× larger. Size slices relative to what rests in the top levels of the book, not to daily volume (order-book depth).

How Lighter, Aster, Binance and Bybit compare

HyperliquidLighterAster (Pro)
TWAP5 min–7 days, ≥ 30 s slices, ±20% randomizeOne slice every 30 s, 5 min–30 days1 min–7 days (docs)
Iceberg / hiddenNoIceberg in the app's Advanced menuHidden Order and Hidden Position (docs)
Fee on TWAPNormal taker fee0.01% on Standard accounts (docs); Premium rates otherwise0.04% taker
HyperliquidBinance FuturesBybit
Running time5 min–7 days5 min–24 hours5 min–24 hours
Minimum size$100 total, $10 per slice$1,000 notionalExchange minimum per sub-order
Slice intervalCalculated, ≥ 30 sNot user-setYou choose 5–120 s
Randomize±20%No option in the FAQ±20%
Trigger / stop priceTrigger Price, Max/Min Price (mark price)Optional limit price (API)Trigger Price, Stop Price (last price)
Who can see the totalAnyone, on-chainOnly youOnly you

Sources: Lighter docs (account types, order types), Aster docs, Binance Futures TWAP FAQ and Bybit Help Center "Introduction to TWAP Strategy", all re-read October 22, 2026. If a genuinely hidden order is a must-have, see the Aster order types guide or Lighter order types.

FAQ

What is a TWAP order on Hyperliquid?

TWAP stands for time-weighted average price. On Hyperliquid it is a native order type in the Pro menu that splits one order into suborders sent at intervals of 30 seconds or longer over a running time between 5 min–7 days, so the fill tracks the average price of that window. Minimum $100 in total and $10 per suborder; each suborder is limited to 3% slippage.

How does TWAP work on Hyperliquid?

You enter a total size and a running time (5 min–7 days). Hyperliquid splits the order into suborders sent at a fixed interval of at least 30 seconds, each at least $10. Each suborder is a market-style order limited to 3% slippage. If slices miss, later ones grow (up to 3× normal size) to catch up. Options: Randomize (±20% per slice), Reduce Only, and under Advanced Settings a Trigger Price to start and a Max/Min Price to stop.

How much does a TWAP cost on Hyperliquid?

Every suborder is a taker fill, so a TWAP pays the taker fee on its whole size: 0.045% at the base tier on perps (0.0432% with a referral code for your first $25M), 0.070% on spot. A $100,000 perp TWAP therefore costs $45.00, or $43.20 with the discount. There is no extra charge for using TWAP itself.

How can I track TWAPs on Hyperliquid?

Use a tracker that indexes TWAP placements: the HypurrScan dashboard (Active TWAPs and a TWAP Buy Pressure widget), ASXN's Hyperscreener or the Current TWAPs tab in Hyperdash's terminal. Hyperliquid's own API has no request that lists every active TWAP; it returns the TWAPs of one address at a time, which is how these sites build their lists. The trackers disagree with each other, so treat their totals as estimates.

What is TWAP buy pressure?

It is the dollar value that active buy TWAPs are scheduled to buy in the next hour (or 24 hours) minus what sell TWAPs are scheduled to sell. On HYPE at 02:32 UTC on October 22, 2026, our count from the API gave $725,992 of buying against $432,974 of selling for the next hour, but one address's matched spot-buy and perp-sell pair made up a large part of both sides: without it, $483,158 against $190,286. TWAPs can be terminated at any time, so this is scheduled flow, not a promise.

Can other traders see my TWAP on Hyperliquid?

Yes. The TWAP is an on-chain action, so its terms (your address, the market, side, total size, running time and flags) are public from the moment you place it, and the public API returns any address's TWAP status and slice fills without a key. Trackers list new TWAPs as they appear. Slices fill immediately as market-style orders, so the total never rests on the order book.

What is the minimum TWAP size on Hyperliquid?

$100 of notional per TWAP order, and each suborder must be at least $10. The running time must be at least 5 minutes. A $100 TWAP can therefore have only about ten $10 slices, whatever running time you pick.

Does Hyperliquid have iceberg orders?

Not natively. The documented order types are Market, Limit, Stop Market, Stop Limit, Take Market, Take Limit, Chase, Scale, Trailing Stop and TWAP, and the API order has no hidden or display-size field (October 22, 2026). Some third-party front-ends, such as Hyperdash, sell a "stealth" TWAP or an iceberg algo that runs on their own servers for a builder fee; each child order still lands on the public book. On Hyperliquid itself, use a Scale ladder or an API script that reposts a small slice after each fill.

Can I place a TWAP through the API?

Yes. Send a twapOrder action with the asset, side, size, reduce-only flag, duration in minutes and a randomize flag; cancel it with twapCancel and the returned twapId. The official Python SDK has no TWAP helper, so you build the action yourself and sign it with the SDK's signing function. Slice fills are available through the userTwapSliceFills info request (the 2,000 most recent) and the twapStates, userTwapSliceFills and userTwapHistory WebSocket feeds.

What is the difference between TWAP and VWAP?

TWAP (time-weighted average price) splits an order evenly over time: the same amount every interval. VWAP (volume-weighted average price) splits it in proportion to expected market volume, so more is traded in busy hours and less in quiet ones. Hyperliquid has a native TWAP but no VWAP order; you can approximate VWAP by running several shorter TWAPs sized to the hourly volume profile.

What happens to a TWAP if I close the browser?

Nothing: TWAP runs on the exchange, so it keeps executing until it finishes, you terminate it, or its Max/Min Price is hit. Chase orders are different: they run in the browser tab where you created them and stop if you close it.

Execute size on Hyperliquid

Native TWAP, Scale, Chase and Trailing Stop, no gas per order, and 4% off fees for your first $25M with HOLYGRAIL.

Open Hyperliquid →

Disclosure: HOLYGRAIL is our Hyperliquid referral code; we earn a share of referred accounts' fees at no cost to you. Order mechanics come from Hyperliquid's documentation, the August 2026 announcement, the live app and the public API, checked on October 22, 2026; the buy-pressure table is our own calculation for one timestamp. Examples are illustrative, not trading advice.