Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Hyperliquid market data, account history, trade review.
.claude/skills/nousresearch-hyperliquid/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-14 | ✓→✗ | ▼ Worse | 6% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 300% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 77% | 0% |
| case-01 | ✗→✗ | = Same ✗ | -33% | 0% |
Query Hyperliquid market and account data through the public /info endpoint. Read-only — no API key, no signing, no order placement.
12 commands: dexs, markets, spots, candles, funding, l2, state, spot-balances, fills, orders, review, export. Stdlib only (urllib, json, argparse).
Stdlib only — no external packages, no API key.
The script reads ${HERMES_HOME:-~/.hermes}/.env for two optional defaults:
HYPERLIQUID_API_URL — defaults to https://api.hyperliquid.xyz. Set tohttps://api.hyperliquid-testnet.xyz for testnet.
HYPERLIQUID_USER_ADDRESS — default address for state, spot-balances,fills, orders, and review. If unset, pass the address as the first positional argument.
A project .env in the current working directory is honored as a dev fallback.
Helper script: ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py
Invoke through the terminal tool:
bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py <command> [args]
Add --json to any command for machine-readable output.
bashhyperliquid_client.py dexs hyperliquid_client.py markets [--dex DEX] [--limit N] [--sort volume|oi|funding_abs|change_abs|name] hyperliquid_client.py spots [--limit N] hyperliquid_client.py candles <coin> [--interval 1h] [--hours 24] [--limit N] hyperliquid_client.py funding <coin> [--hours 72] [--limit N] hyperliquid_client.py l2 <coin> [--levels N] hyperliquid_client.py state [address] [--dex DEX] hyperliquid_client.py spot-balances [address] [--limit N] hyperliquid_client.py fills [address] [--hours N] [--limit N] [--aggregate-by-time] hyperliquid_client.py orders [address] [--limit N] hyperliquid_client.py review [address] [--coin COIN] [--hours N] [--fills N] hyperliquid_client.py export <coin> [--interval 1h] [--hours N] [--output PATH]
For state, spot-balances, fills, orders, and review, the address is optional when HYPERLIQUID_USER_ADDRESS is set in ${HERMES_HOME:-~/.hermes}/.env.
bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py dexs python ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ markets --limit 15 --sort volume python ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ spots --limit 15
--dex only applies to perp endpoints; omit for the first perp dex.PURR/USDC or aliases like @107.mydex:BTC.bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ candles BTC --interval 1h --hours 72 --limit 48 python ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ funding BTC --hours 168 --limit 30
Time-range endpoints paginate. For larger windows, repeat with a later startTime or use export (below).
bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ l2 BTC --levels 10
Use when asked about book depth, near-term liquidity, or potential market impact of a large order.
bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ state 0xabc... python ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ spot-balances
state returns perp positions; spot-balances returns spot inventory. Use these for "how are my positions?", "what am I holding?", "how much is withdrawable?".
bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ fills 0xabc... --hours 72 --limit 25 python ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ orders --limit 25
bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ review 0xabc... --hours 72 --fills 50 python ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ review --coin BTC --hours 168
Reports realized PnL, fees, win/loss counts, coin breakdowns, market trend and average funding for each traded perp, plus heuristics (fee drag, concentration, counter-trend losses).
For deeper post-trade analysis: start with review to find problem coins or windows → pull fills and orders for that period → pull candles and funding for each traded coin → judge decision quality separately from outcome quality.
bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ export BTC --interval 1h --hours 168 --output ./btc-1h-7d.json python ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ export BTC --interval 15m --hours 72 --end-time-ms 1760000000000
Output JSON contains: schema version, source metadata, exact time window, normalized candle rows, normalized funding rows, summary stats. Use --end-time-ms for reproducible windows.
return capped windows; iterate with later startTime values.
fills --hours ... uses userFillsByTime, which only exposes arecent rolling window — not full archive history.
historicalOrders returns recent orders only; not a full export.review command is heuristic. It cannot reconstruct intent,order placement quality, or true slippage from fills alone.
export command writes a normalized dataset, not a backtestengine. You still need your own slippage/fill model.
@107 are valid identifiers even when the UI showsa friendlier name.
l2 is a point-in-time snapshot, not a time series.bashpython ~/.hermes/skills/blockchain/hyperliquid/scripts/hyperliquid_client.py \ markets --limit 5
Should print the top Hyperliquid perp markets by 24h notional volume.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 17,004 | 4,971 | -71% | 1 | 1 | 0% | 3,451 | 2,318 | -33% | 0 | 0 | — |
case-02 | fail→fail | 24,406 | 4,801 | -80% | 1 | 1 | 0% | 4,488 | 2,202 | -51% | 0 | 0 | — |
case-03 | fail→fail | 8,982 | 4,180 | -53% | 1 | 1 | 0% | 2,032 | 2,118 | +4% | 0 | 0 | — |
case-04 | pass→pass | 3,431 | 3,244 | -5% | 1 | 1 | 0% | 613 | 2,450 | +300% | 0 | 0 | — |
case-05 | pass→pass | 6,811 | 2,739 | -60% | 1 | 1 | 0% | 1,352 | 2,391 | +77% | 0 | 0 | — |
case-06 | fail→pass | 10,247 | 5,025 | -51% | 1 | 1 | 0% | 1,763 | 2,768 | +57% | 0 | 0 | — |
case-07 | fail→fail | 12,620 | 3,680 | -71% | 1 | 1 | 0% | 2,327 | 2,021 | -13% | 0 | 0 | — |
case-08 | fail→fail | 8,595 | 3,494 | -59% | 1 | 1 | 0% | 1,705 | 2,018 | +18% | 0 | 0 | — |
case-09 | fail→fail | 10,701 | 3,635 | -66% | 1 | 1 | 0% | 2,188 | 2,082 | -5% | 0 | 0 | — |
case-10 | fail→fail | 9,902 | 3,528 | -64% | 1 | 1 | 0% | 1,794 | 2,067 | +15% | 0 | 0 | — |
case-11 | fail→fail | 9,693 | 3,341 | -66% | 1 | 1 | 0% | 2,293 | 2,038 | -11% | 0 | 0 | — |
case-12 | fail→fail | 8,513 | 3,870 | -55% | 1 | 1 | 0% | 1,694 | 2,137 | +26% | 0 | 0 | — |
case-13 | fail→fail | 7,699 | 3,303 | -57% | 1 | 1 | 0% | 1,656 | 2,056 | +24% | 0 | 0 | — |
case-14 | pass→fail | 9,476 | 4,371 | -54% | 1 | 1 | 0% | 2,072 | 2,206 | +6% | 0 | 0 | — |
case-15 | fail→fail | 5,977 | 4,092 | -32% | 1 | 1 | 0% | 1,305 | 2,209 | +69% | 0 | 0 | — |
case-16 | fail→fail | 17,841 | 4,775 | -73% | 1 | 1 | 0% | 4,069 | 2,271 | -44% | 0 | 0 | — |
case-17 | fail→fail | 6,495 | 5,253 | -19% | 1 | 1 | 0% | 1,422 | 2,242 | +58% | 0 | 0 | — |
case-18 | fail→fail | 17,965 | 4,760 | -74% | 1 | 1 | 0% | 3,416 | 2,258 | -34% | 0 | 0 | — |
case-19 | fail→fail | 7,679 | 3,505 | -54% | 1 | 1 | 0% | 2,037 | 2,112 | +4% | 0 | 0 | — |
case-20 | fail→fail | 10,782 | 4,527 | -58% | 1 | 1 | 0% | 2,583 | 2,195 | -15% | 0 | 0 | — |
case-21 | fail→fail | 15,276 | 4,417 | -71% | 1 | 1 | 0% | 3,125 | 2,287 | -27% | 0 | 0 | — |
case-22 | fail→fail | 11,297 | 3,437 | -70% | 1 | 1 | 0% | 2,397 | 2,073 | -14% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 3 counted toward the lift figure. The other 19 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of 0 percentage points is the difference between those two pass rates over the 3 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/8/2026 | — |
Other measured skills in the registry, with their headline benchmark lift.