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.
1. Install
Section titled “1. Install”# macOS (Homebrew)brew install zunderlabs/tap/zunder-guardfilled in from your settings ·
Other platforms, Docker and signature checks: Deploy.
2. Create a config with your rules
Section titled “2. Create a config with your rules”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.
zunder-guard init --network paper \ --rules zr1_eyJ2IjoxLCJtYXhMZXZlcmFnZSI6NSwibWF4TG9zc0F0U3RvcFBjdCI6Miwic3RvcFBvbGljeSI6ImF0dGFjaCIsImRlZmF1bHRTdG9wRGlzdGFuY2VQY3QiOjIsIm1pbkxpcURpc3RhbmNlUGN0IjoxMCwibWF4UG9zaXRpb25QY3QiOjIwMCwibWF4T3BlblJpc2tQY3QiOjYsImRhaWx5TG9zc1N0b3BQY3QiOjYsImRyYXdkb3duSGFsdFBjdCI6MjUsIm1hcmtldHMiOlsiKiJdfQfilled in from your settings ·
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.
3. Start Guard
Section titled “3. Start Guard”zunder-guard startIt listens on http://127.0.0.1:8547, on your machine only.
4. Point your bot at Guard
Section titled “4. Point your bot at Guard”One setting changes: the API URL. The private key becomes the client key from step 2.
from eth_account import Accountfrom hyperliquid.exchange import Exchange
client_key = Account.from_key("0x...") # the client key Guard printedexchange = Exchange(client_key, base_url="http://127.0.0.1:8547", account_address="0xYourAccountAddress")filled in from your settings ·
Guides for ccxt, Freqtrade, the TypeScript SDK, MCP and TradingView are under Integrations.
5. Send an order and read the answer
Section titled “5. Send an order and read the answer”Send one order your bot would normally send. Then:
zunder-guard statusYou see the decision (allow, resize or veto), the rule that decided, and the journal entry. Nothing reached Hyperliquid, because this is paper mode.
Next: testnet, then mainnet
Section titled “Next: testnet, then mainnet”- 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.