<!-- https://zunder-design-preview.pages.dev/ · Markdown version of the page -->

# Your bot can be wrong. Your limits can’t.

Zunder guard · faster than lightning..

Your bot has big ideas. Give it hard limits. Guard sizes orders from the stop, caps exposure and halts new entries when your loss limits hit. On your machine, between your bot and Hyperliquid.

- Guard adds about 3 ms per order; run it in Tokyo, next to Hyperliquid, and your order reaches the exchange in about 5 ms ([how it was measured](https://zunder-design-preview.pages.dev/docs/methods/latency/))
- [Join the waitlist](https://zunder-design-preview.pages.dev/#waitlist) · [Backtest your bot](https://zunder-design-preview.pages.dev/connect#backtest) · [Watch it live](https://zunder-design-preview.pages.dev/connect#watch) · [FAQ](https://zunder-design-preview.pages.dev/faq)

## The market, judged by your rules.

Every dot is a real trade on Hyperliquid, as it happens. For the largest ones, Guard reads the trader’s public account and asks one question: would your limits have let it through?

The page shows a river of the last 48 seconds of trades (one lane per market: BTC, ETH, SOL, HYPE, alts; dot size is notional, colour is heat), the share refused and resized under your rules, why Guard said no, refusals by market, and a table of the latest decisions. Traders are anonymised in your browser. Every trade in BTC, ETH, SOL, HYPE, XRP, DOGE, SUI and AVAX streams from Hyperliquid’s public data; the largest are judged on this page, as many as the public API’s request budget allows.

Guard's default rules: 5× max · 2.0% at stop · no stop: Guard sets one · liq. ≥ 10% · size ≤ 200% · open ≤ 6% · daily 6% · drawdown 25% · 5/5 markets.

## Guard adds about 3 ms. Your account, already in hand.

Guard follows your account on Hyperliquid’s live account stream, so it judges your bot’s order on your real positions without asking first. Run it in Tokyo, next to Hyperliquid, and your order reaches the exchange in about 5 ms.

- **0.24 ms**: Guard’s own work: check, judge, sign
- **3 ms**: Guard adds per order, median¹
- **5 ms**: until your order reaches Hyperliquid, from Tokyo

One order, to scale: Guard’s own work: check, judge, sign 0.24 ms; Guard adds per order, median 3 ms; until your order reaches Hyperliquid 5 ms.

*Method:* ¹ Median of the time from your bot’s request reaching Guard to Guard’s answer, with your account judged from the live account stream and Guard’s decision journal on local SSD; measured 7 Oct 2026 in Tokyo (AWS ap-northeast-1), in paper mode against Hyperliquid testnet. The trip to Hyperliquid is not in it: from Tokyo, 4.5 ms there and back (median), so the order reaches the exchange at about 5 ms.

## Big ideas meet hard limits.

1. **Read the account.** Equity, open positions and their stops, from the venue and from Guard’s own record. The riskier view wins.
2. **Size from the stop.** Your bot names a stop. Guard turns your risk limit, fees and the venue’s rounding into a quantity.
3. **Check every limit.** Leverage, open risk, the daily loss stop, the drawdown halt. One fails, the order never leaves.
4. **Send, stop, record.** The order goes out with its stop resting on the venue, and the decision is written to a checksum-chained journal that shows if a line was changed or removed.

### The nine rules

Four refuse an order, two halt new entries, two shrink it, and one adds the stop your bot forgot. You set each one; the defaults are Guard’s policy.

- **Market allowlist** (default all markets; refuses): Only markets on your list can be traded.
- **Required stop** (default Guard sets one; adds a stop): No stop? Guard sets one, sized to your max loss at the stop. (Or refuses, if you choose.)
- **Max leverage** (default 5×; refuses): Refuses an order that would take the position above your leverage cap.
- **Min distance to liquidation** (default 10%; refuses): Refuses an order whose position would sit closer than this to its liquidation price.
- **Max open risk** (default 6%; refuses): Refuses a new trade when the loss at all stops, open positions plus this one, would pass this share of the account.
- **Daily loss stop** (default 6%; halts): Once the account is down this much since the start of the UTC day, new entries stop until the day is over.
- **Drawdown halt** (default 25%; halts): Once the account is this far below its peak, new entries stop until a human resumes.
- **Max position** (default 200%; resizes): Shrinks an order whose position would be larger than this share of the account.
- **Max loss at the stop** (default 2%; resizes): Shrinks the order until the loss at its stop, fees included, is at most this share of the account.

Always, whatever you set: stops only tighten, a restart never resets a stop, and a drawdown halt waits for a human.

## Kick the tyres. Bring your bot.

Start with a public address. No wallet connection or installation needed for the browser tools.

| Product | What it is | Status |
|---|---|---|
| Guard | Risk firewall between any bot or AI agent and Hyperliquid. | Building |
| Backtest | Replay any address under your rules. | Live |
| Watch | Your bot’s trades judged live in the browser. | Live |
| Live market | Hyperliquid’s trades judged by your rules, anonymised. | Live |
| Agent kit (MCP) | Guarded trading tools for Claude, Cursor and other MCP clients. | With Guard 1.0 |
| Monitor | Pair the browser with your local Guard: decisions and kill switch. | Planned |
| Data | Point-in-time Hyperliquid data: trades, books, node gossip. | Planned (recorded since Oct 2026) |
| Labs | Research notes: honest backtesting, the signal lab. | Planned |
| Guarded Arena | AI agents trading in public, every veto visible. | Planned |
| Mint | Toolkit for HIP-3 market deployers. | Exploring |
| Terminal | Guard in the browser for manual traders. | Exploring |

Live: works today. Building: in progress. With Guard 1.0: ships with Guard. Planned: decided, not started. Exploring: an idea we are testing.

## Questions, answered straight

### Is Zunder Guard available today?

Not yet. Guard is being built. Its risk engine, the sizing from the stop, the daily loss stop and the drawdown halt already run in Zunder's own trading system; the proxy that puts them in front of your bot is in progress. You can [join the waitlist](https://zunder-design-preview.pages.dev/#waitlist) for early access.

On this site today: the [backtest](https://zunder-design-preview.pages.dev/connect#backtest) and the [watch](https://zunder-design-preview.pages.dev/connect#watch) steps run in your browser, and the live market section shows how Guard judges trades. All three read Hyperliquid’s public data and judge it with Guard’s risk engine, compiled to WebAssembly, in your browser.

### What does Zunder Guard cost?

0.02% of each order’s value that Guard sends to Hyperliquid on mainnet, as a builder fee: $2 on a $10,000 order, win or lose. That is the default plan, **Pay per order**: open to anyone and anonymous, with no subscription, no sign-up, no account and no personal data. Paper trading and testnet are always free.

If your bot trades more than about $870k a month, a flat licence is cheaper: **Pro** €149 a month for up to 3 accounts, **Fund** €690 a month for up to 20 accounts with priority email support; a year costs ten months. Bot platforms can share the fee through their own builder code. A licence turns off the fee and nothing else, and when it ends, Guard falls back to the fee and keeps protecting you.

Licences are sold to businesses, self-service, paid in USDC: [buy a licence](https://zunder-design-preview.pages.dev/licence). Guard itself comes with its first release; join the waitlist before Guard 1.0.0 and you get Pro free for 3 months. [Plans and the calculator](https://zunder-design-preview.pages.dev/pricing).

### How do I add a daily loss limit or a kill switch to my Hyperliquid bot?

Put the check outside the bot's own logic. A limit written into the strategy fails together with it: a restart resets counters kept in memory, and a bug can skip the check entirely.

A daily loss limit needs three things: the account's equity at the start of the UTC day, a check before every new order that refuses it once the day's loss reaches your limit, and a halt that survives restarts. A kill switch is the same mechanism pulled by hand: it refuses every new order at once.

That is what Guard is built to do in front of your bot (planned for Guard 1.0). It reads equity from Hyperliquid and from its own record and uses the riskier of the two, and refuses new entries once the day's loss reaches your daily loss stop (default 6%). A restart never resets a stop. The daily stop clears at the next UTC day; a drawdown halt (default 25% below the peak) waits for a human.

Until Guard ships, [Watch](https://zunder-design-preview.pages.dev/connect#watch) can warn you in the browser when one of your bot's trades breaks a rule. It cannot block anything.

### Is a Hyperliquid API wallet (agent wallet) safe? What can it do and not do?

Safer than your main key, but not harmless. An API wallet is a separate key that your main wallet approves to trade for the account. It can place and cancel orders; it cannot withdraw or transfer funds.

So a leaked API wallet key cannot take your funds out directly, but whoever holds it can still trade your account into losses: open oversized positions, or buy an illiquid market at a bad price from themselves.

Keep it away from code you do not fully trust. With Guard (planned), the API wallet key stays inside Guard on your machine. Your bot gets a separate client key issued by Guard, which Hyperliquid does not accept on its own, and every order still has to pass your limits. If you think a key has leaked, replace that API wallet.

### How do I put guardrails on an AI trading agent (MCP)?

Keep the limits outside the agent, and give it tools that cannot break them. A prompt is not a limit: a model can misread a number, loop, or be talked out of an instruction.

The plan for Guard 1.0 is an MCP server (`zunder-guard mcp`). Its tools read the account and the limits, ask what Guard would allow for a trade, place, amend and close orders, and pull the kill switch. No tool can raise a limit, loosen a stop or resume after a halt, and every order the agent sends passes the same rules as any bot's. It is planned for MCP clients such as Claude Desktop, Claude Code and Cursor. None of it is released yet.

### What is a Hyperliquid builder fee, and how does Guard use one?

A builder fee is a per-order fee that Hyperliquid lets an app attach to the orders it sends for a user. The user approves a maximum fee once with their main wallet and can revoke the approval at any time. Hyperliquid collects the fee with the trade and credits it to the app's builder address. Hyperliquid caps builder fees at 0.1% on perps and 1% on spot.

Guard's fee is 0.02% of each order’s value that it sends to Hyperliquid, on mainnet. Hyperliquid collects it only after you have approved it once with your main wallet, and you can revoke that approval at any time. Without the approval, Guard opens no new positions and says why; closing orders always go. Zunder Labs never holds your funds. A busy bot can turn the fee off with a flat licence: see [pricing](https://zunder-design-preview.pages.dev/pricing).

### Is Guard open source?

No: source-available. Guard will be published under the Elastic License 2.0. You can read the code, run it and change it for your own trading. You may not offer it to others as a hosted service, or remove or work around the per-order fee, which is built in as licence-key functionality.

To run Guard without the fee, get a licence: see [pricing](https://zunder-design-preview.pages.dev/pricing).

### Does Guard give trading signals or investment advice?

No. Guard is a risk tool. It enforces limits you set on orders your bot or agent has already decided to send: it sizes them, adds a missing stop or refuses them. It gives no signals, no investment advice, and promises no returns.

### Does Guard hold my keys or my funds?

No. Guard runs on your machine or your own server, not ours. Your funds stay in your Hyperliquid account. The only key Guard uses is an API wallet key that you create and that cannot withdraw. It stays on your machine, and we never see it.

Zunder Labs runs no service that holds a key or can place an order. This website reads public data only: no wallet connection, no signature, no key. The one exception is the fee approval at /approve, which asks your main wallet to sign Hyperliquid's ApproveBuilderFee message (to approve the fee, or to withdraw the approval at 0%) and nothing else.

### How much latency does Guard add?

About 3 ms per order. Guard follows your account on Hyperliquid's live account stream, so it judges an order on your real positions without asking Hyperliquid first. Run it in Tokyo, next to Hyperliquid, and your order reaches the exchange in about 5 ms. What that covers and how it was measured: [the latency benchmark](https://zunder-design-preview.pages.dev/docs/methods/latency/).

### Which bots work with Guard?

Planned: anything that can point its Hyperliquid client at a custom URL. Guard will speak Hyperliquid's own API on your machine (for example `http://127.0.0.1:8547`), so your bot changes a few settings (the URL, the key Guard gives it, isolated margin) and keeps its logic.

The plan covers ccxt and the bots built on it (such as Freqtrade), the official Hyperliquid Python and TypeScript SDKs, MCP clients, and your own scripts. Each integration gets a one-page guide once we have tested it. Until then, read this list as planned, not verified.

### Is the backtest a promise of what Guard would have done?

No. It is a what-if. It replays an address's trades twice: once as they happened, once behind your rules.

- Skipping or shrinking a trade can change what the bot would have done next; the replay cannot know that.
- Prices, fees and funding after a skipped trade are taken from the real history.
- Losses are capped at the stop only where the bot actually had one.
- Results include fees and funding as Hyperliquid recorded them.

[Backtest](https://zunder-design-preview.pages.dev/connect#backtest) replays the last 30, 90 or 180 days of an address (90 by default) from Hyperliquid’s public data and lists what the replay had to assume.

## Pricing (guard 1.0 · coming)

Switch off Guard’s 0.02% builder fee with a flat licence. Every rule stays on. Pick your firepower.

- **Pro**: €149 a month, or €1,490 a year. For traders and teams who put their bots to work.
- **Fund**: €690 a month, or €6,900 a year. More accounts. The same uncompromising rules.
- **Pay per order**: 0.02% of each order’s value that Guard sends to Hyperliquid. Anyone, anonymously. The default for every install.
- **Platform**: Custom revenue share through your own builder code. Bot platforms and HIP-3 deployers that build Guard in.

Break-even: Pro pays for itself above about $870k of orders a month, Fund above about $4M. Join the waitlist before Guard 1.0.0 and get Pro free for 3 months. [All plans and the calculator](https://zunder-design-preview.pages.dev/pricing).

## Put a firewall in front of your bot.

Self-hosted Guard is in development. Join for beta and release updates. The browser tools are available to try today. 0.02% of each order’s value that Guard sends to Hyperliquid · no subscription · or a flat licence. Launch offer: join before Guard 1.0.0 and get Pro free for 3 months. [Join the waitlist](https://zunder-design-preview.pages.dev/#waitlist).
