Skip to content

Quickstart in paper mode

Paper mode is where every Guard starts. It reads Hyperliquid’s real prices and your real account, judges every order with the same rules, and records what it would have done. It sends nothing to Hyperliquid’s /exchange endpoint.

Terminal window
# macOS (Homebrew)
brew install zunderlabs/tap/zunder-guard

Other platforms, Docker and signature checks: Deploy.

If you set rules on this site (Backtest, Watch or the homepage), they are stored in your browser as a rules code that starts with zr1_. The command below carries them. Otherwise it uses the defaults.

Terminal window
zunder-guard init --network paper \
--rules zr1_eyJ2IjoxLCJtYXhMZXZlcmFnZSI6NSwibWF4TG9zc0F0U3RvcFBjdCI6Miwic3RvcFBvbGljeSI6ImF0dGFjaCIsImRlZmF1bHRTdG9wRGlzdGFuY2VQY3QiOjIsIm1pbkxpcURpc3RhbmNlUGN0IjoxMCwibWF4UG9zaXRpb25QY3QiOjIwMCwibWF4T3BlblJpc2tQY3QiOjYsImRhaWx5TG9zc1N0b3BQY3QiOjYsImRyYXdkb3duSGFsdFBjdCI6MjUsIm1hcmtldHMiOlsiKiJdfQ

That code is the defaults: 5x leverage, 2% loss at the stop, stop required, liquidation at least 10% away, a position at most 200% of equity, 6% open risk, 6% daily loss stop, 25% drawdown halt, all markets. The format is on Rules codes.

init writes guard.toml and prints a client key for your bot. The client key is not your API wallet key. Hyperliquid does not accept it. Only your Guard does.

Terminal window
zunder-guard start

It listens on http://127.0.0.1:8547, on your machine only.

One setting changes: the API URL. The private key becomes the client key from step 2.

from eth_account import Account
from hyperliquid.exchange import Exchange
client_key = Account.from_key("0x...") # the client key Guard printed
exchange = Exchange(client_key, base_url="http://127.0.0.1:8547",
account_address="0xYourAccountAddress")

Guides for ccxt, Freqtrade, the TypeScript SDK, MCP and TradingView are under Integrations.

Send one order your bot would normally send. Then:

Terminal window
zunder-guard status

You see the decision (allow, resize or veto), the rule that decided, and the journal entry. Nothing reached Hyperliquid, because this is paper mode.

  • Testnet sends real orders to Hyperliquid testnet with test money. Use it to see stops rest on the venue and fire.
  • Mainnet needs you to type the network and confirm the account. Guard never moves there by itself.

Details: Paper, testnet and mainnet.