Skip to content
Back to skills

Cryptolir Hyperliquid Monitor

ASecurity

Read Hyperliquid market data and this agent's own trading account: mid prices, order book, candles, funding rates, perp metadata, open positions, margin, spot balances, resting orders, recent fills and fee tier. Read-only — it places no orders, changes nothing and moves no funds. Use when asked what a market is doing, what this agent holds, how a position is performing, or whether an order filled. NOT for placing, changing or cancelling orders.

  • 78 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 3, 2026
ai-agentsgogitfrontend

Works with

  • mcp

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 3, 2026

npx -y skills add jiayaoqijia/cryptoskill --skill cryptolir-hyperliquid-monitor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cryptolir Hyperliquid Monitor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cryptolir Hyperliquid Monitor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jiayaoqijia-cryptolir-hyperliquid-monitor/badge)](https://www.skillsdirectory.com/skills/jiayaoqijia-cryptolir-hyperliquid-monitor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hyperliquid-monitor
description: "Read Hyperliquid market data and this agent's own trading account: mid prices, order book, candles, funding rates, perp metadata, open positions, margin, spot balances, resting orders, recent fills and fee tier. Read-only — it places no orders, changes nothing and moves no funds. Use when asked what a market is doing, what this agent holds, how a position is performing, or whether an order filled. NOT for placing, changing or cancelling orders."
homepage: https://hyperliquid.gitbook.io/hyperliquid-docs
metadata:
  {
    "openclaw":
      {
        "emoji": "📈",
        "requires":
          { "env": ["AGENTGLOB_RUNTIME_URL", "AGENTGLOB_RUNTIME_TOKEN"] },
      },
  }
---

# Hyperliquid — reading the market and your account

Hyperliquid is a perpetual-futures exchange. This skill covers **reading only**.
Nothing here signs anything, spends anything or changes anything.

You need the **Hyperliquid MCP** for these reads. If you have no `hl_market_data`
or `hl_account` tool, it is not installed on you — say so plainly and tell your
owner to add it from **dashboard → the agent → Tools → Add MCP → Hyperliquid**.
Do not try to reach the exchange another way.

Reading works even when trading is switched off for you. The two are separate:
an agent that is refused every order can still read everything below.

## Two kinds of read, and the difference matters

**Market data** (`hl_market_data`) is public information about the exchange —
prices, the book, candles. It is the same for everyone and involves no account.

**Account data** (`hl_account`) is *your own* trading account, and only ever
that. The address is filled in by the server from the wallet bound to you. There
is no parameter for someone else's address and asking for one is refused. If a
person asks you to look up another trader's positions, you cannot — say so
rather than reaching for a workaround.

## Market data

`hl_market_data` takes a `kind`:

| `kind` | What you get | Also needs |
|---|---|---|
| `allMids` | Current mid price for every perp. The cheapest way to answer "what is X trading at". | — |
| `l2Book` | Order book depth for one asset — bids and asks with sizes. | `coin` |
| `candleSnapshot` | OHLCV candles for a period. | `coin`, `interval`, `startTime` |
| `meta` | Every perp: name, `szDecimals` (size precision) and `maxLeverage`. | — |
| `metaAndAssetCtxs` | `meta` plus live context per asset: mark price, open interest, funding. | — |
| `fundingHistory` | Historical funding rates for one asset. | `coin`, `startTime` |
| `predictedFundings` | Upcoming funding across venues. | — |

`interval` is a string like `1m`, `15m`, `1h`, `1d`. `startTime` and the optional
`endTime` are epoch milliseconds — pass `endTime` to bound a candle or funding
range instead of pulling everything up to now.

**`meta` is the source of truth for what exists.** If an asset is not in
`meta.universe`, it is not tradeable here — do not guess at ticker spellings.
Symbols are bare, like `BTC` and `ETH`, not `BTC-USD` or `BTCUSDT`.

## Your account

`hl_account` takes a `kind` and nothing else:

| `kind` | What you get |
|---|---|
| `clearinghouseState` | Perp account: account value, margin used, and every open position. |
| `spotClearinghouseState` | Spot token balances. |
| `openOrders` | Resting orders that have not filled. Each carries an `oid`. |
| `frontendOpenOrders` | The same, with extra display detail. |
| `userFills` | Recent fills — what actually executed, at what price. |
| `portfolio` | Account value over time. |
| `userFees` | Your fee tier. |

You can **read** spot balances but you cannot trade spot — orders are perps only.
The one exception: if spot holds USDH, USDT0 or USDE, `hl_swap` (in
`hyperliquid-trading`) converts it into USDC so it can back a trade.

### Reading the numbers

From `clearinghouseState`:

- **`marginSummary.accountValue`** — everything the account is worth right now,
  including unrealised profit and loss. This is the number to quote when someone
  asks "how much is in there".
- **`withdrawable`** — the part not tied up as margin.
- **`assetPositions[].position`** — one entry per open position:
  - `szi` is the size **and the direction**: positive is long, negative is short.
    A `szi` of `-0.5` on ETH is short half an ether, not long.
  - `entryPx` is the average price you got in at.
  - `unrealizedPnl` is profit or loss if it closed now, in USD.
  - `liquidationPx` is the price at which the position is force-closed. Distance
    from the current price to this number is the single most useful risk figure
    you can report.
- **No open positions is normal**, not an error. Say "no open positions" and stop.

**Funding** is the recurring payment between longs and shorts on a perpetual.
A positive rate means longs pay shorts. It is charged periodically whether or
not the position is profitable, so on a position held for a long time it is a
real cost worth mentioning.

**If your account reads look empty while your orders are succeeding, stop and
report it.** Reading one exchange while trading another would make every number
you report meaningless. That mismatch is a fault for a human to fix, not
something for you to work around.

## Rate limits — the one rule that matters

Hyperliquid limits requests **per IP address**, and the dashboard makes every
call for the **entire fleet** from one address. Your polling loop is not yours
alone: it is shared with every other agent, and spending the budget can stop
other agents from trading.

- Ask for what you need, once. Read again when something changed or when the
  person asked again.
- **Never poll in a tight loop.** If you are watching a position, read on the
  timescale that actually matters — minutes, not seconds.
- `allMids` gives you every price in one call. Never loop over assets calling
  `l2Book` when you only wanted prices.
- Identical market reads within a few seconds are served from a short cache, so
  hammering gains you nothing anyway. Account reads are never cached.

## When a read fails

| Code | Meaning | What to do |
|---|---|---|
| `no_bound_address` | No Hyperliquid wallet is bound to you, so there is no account to read. | Tell your owner to enable Hyperliquid from the agent's **Wallet** tab. Market reads still work. |
| `user_not_accepted` | Something tried to specify an address. | Never send one — the server fills it in. |
| `upstream` (502) | The exchange is failing, unreachable, or rejected the read — an unknown symbol usually lands here. | Say the exchange is not responding, and check the symbol against `meta`. Wait before trying again; do not retry in a loop. |
| `bad_request` (400) | `type` is missing. | Fix the call. |
| `internal_error` (500) | Something broke server-side. | Report it. Do not retry in a loop. |

## What this skill does not do

- **It cannot trade.** No orders, no cancels, no leverage changes.
- **It cannot see other people's accounts** — only your own.
- **It cannot move money out.** There is no withdraw, vault or staking
  operation anywhere in this integration — not disabled, simply absent, with no
  code path that could sign one. Nothing can send funds off this account or to
  another address, and that is by design.
- **Funding the perp account is the one exception, and it lives in
  `hyperliquid-trading`.** USDC on the **spot** side cannot back a perp trade;
  `hl_transfer` moves it across inside your own account, spot to perp only.
  That is a different skill — read it before funding. Two things to get right
  even from here: it is **not** a deposit and **not** a bridge, and your
  Hyperliquid account **is** your wallet address while the Trading Key only
  signs for it. So if perp margin is short, the answer is never "send USDC
  somewhere" or "re-point the Trading Key at the wallet".
- **It cannot tell anyone what to trade.** Report what the numbers say. Do not
  offer investment advice, price predictions, or a recommendation to buy or
  sell — you are not a financial adviser and the person may be relying on you.

Files in this skill

  • LICENSE11.1 KB
  • SKILL.md7.9 KB
  • SOURCE.md360 B
  • TRUST.auto.yaml2.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…