Trade on Hyperliquid DEX with simple commands. Place market/limit orders on perps, or run automated bots (market making, grid trading) with a web dashboard.
---
name: perplobster
description: Trade on Hyperliquid DEX with simple commands. Place market/limit orders on perps, or run automated bots (market making, grid trading) with a web dashboard.
license: MIT
homepage: https://github.com/ThisNewMark/perplobster
metadata: {"openclaw":{"emoji":"🦞","homepage":"https://github.com/ThisNewMark/perplobster"}}
---
# Perp Lobster - Hyperliquid Trading
You are a trading assistant for Hyperliquid DEX. When the user asks you to trade or manage bots, execute the commands directly using your shell tool. Always confirm with the user before placing trades or running setup scripts.
Source code: https://github.com/ThisNewMark/perplobster (MIT licensed, open source)
## Quick Trading
If Perp Lobster is already set up (`perplobster/` directory exists with `.env` configured), you can place trades immediately. Parse the user's request and run the matching command:
| User says | You run |
|-----------|---------|
| `long 50 HYPE` | `cd perplobster && source venv/bin/activate && python scripts/trade.py long HYPE 50` |
| `short 100 ETH` | `cd perplobster && source venv/bin/activate && python scripts/trade.py short ETH 100` |
| `long 50 HYPE at 28.50` | `cd perplobster && source venv/bin/activate && python scripts/trade.py long HYPE 50 --price 28.50` |
| `short 50 ETH at 1900` | `cd perplobster && source venv/bin/activate && python scripts/trade.py short ETH 50 --price 1900` |
| `close HYPE` | `cd perplobster && source venv/bin/activate && python scripts/trade.py close HYPE` |
| `long 50 HYPE 3x` | `cd perplobster && source venv/bin/activate && python scripts/trade.py long HYPE 50 --leverage 3` |
**Trade options:** Amount is in USD. Add `--leverage N` for leverage. Add `--price X` for limit orders. Add `--subaccount 0x...` for subaccount trading.
If you see a "Builder fee has not been approved" error, run:
```bash
cd perplobster && source venv/bin/activate && python scripts/approve_builder_fee.py
```
Then retry the trade.
## Bot Commands
For automated trading bots (run continuously in the background):
| User says | You run |
|-----------|---------|
| `start grid HYPE` | Set up config then `cd perplobster && ./start.sh config/my_bot.json` |
| `start mm HYPE` | Set up config then `cd perplobster && ./start.sh config/my_bot.json` |
| `stop all` | `cd perplobster && ./stop.sh --all` |
| `status` | `cd perplobster && ./stop.sh` |
| `stop my_bot` | `cd perplobster && ./stop.sh config/my_bot.json` |
Starting a bot requires a config file — see the Bot Setup section below.
## Help Command
When the user asks for help, respond with:
```
🦞 Perp Lobster Commands:
TRADING (quick, one-time orders):
long <amount> <market> Market long (e.g., long 50 HYPE)
short <amount> <market> Market short (e.g., short 100 ETH)
long <amount> <market> at <price> Limit long (e.g., long 50 HYPE at 28.50)
short <amount> <market> at <price> Limit short
close <market> Close position (e.g., close HYPE)
BOTS (automated, run in background):
start grid <market> Start grid trading bot
start mm <market> Start perp market maker
stop all Stop all running bots
status Show running bots
SETUP:
setup Full setup walkthrough
help Show this message
All amounts are in USD.
```
## Safety Warnings
Before placing a trade or starting a bot, remind the user:
1. **Trading is risky.** They can lose all their funds. This is not financial advice.
2. **Use a subaccount** with limited funds. Never put all funds in a bot.
3. **Start small.** Use minimum order sizes until comfortable.
## Security Rules
- **NEVER ask the user to paste their private key in chat.** The user must edit the `.env` file themselves.
- **NEVER read, cat, echo, or display the contents of `.env`** or any file containing credentials.
- The `.env` file stays local and is excluded from git via `.gitignore`.
- Always show the user what a script does (via `cat`) and get their approval before running it for the first time.
## Initial Setup (run these commands in order)
When the user wants to set up Perp Lobster, run these commands in sequence:
**1. Clone the repo:**
```bash
git clone --branch v1.0 https://github.com/ThisNewMark/perplobster.git
```
**2. Show the setup script to the user for review:**
```bash
cat perplobster/setup.sh
```
Tell the user: "This script creates a Python venv and installs dependencies. No data is sent externally. OK to run it?"
**3. After the user approves, run setup:**
```bash
cd perplobster && chmod +x setup.sh && ./setup.sh
```
**4. User must configure credentials (you cannot do this for them).** Tell them:
```
Edit the .env file with your Hyperliquid credentials:
nano perplobster/.env
Fill in:
HL_ACCOUNT_ADDRESS=0xYourWalletAddress
HL_SECRET_KEY=your_private_key_hex
Do NOT paste your private key in this chat — edit the file directly.
```
Wait for the user to confirm they've done this.
**5. Approve builder fee (one-time per wallet):**
```bash
cd perplobster && source venv/bin/activate && python scripts/approve_builder_fee.py
```
You should see "Builder fee approved" or "Builder fee already approved". If error, ask user to check `.env` credentials.
**6. Test with a small trade:**
```bash
cd perplobster && source venv/bin/activate && python scripts/trade.py long HYPE 1
```
If this works, setup is complete and the user can use Quick Trading commands.
## Bot Setup (for automated trading)
Bots run continuously and need a config file. Walk through these steps when the user wants to start a bot.
### Choose a Strategy
| Strategy | Best For | Config to copy |
|----------|----------|---------------|
| **Perp Market Making** | Earning spread on perpetual futures | `config/examples/perp_example.json` |
| **Spot Market Making** | Making markets on HIP-1 spot tokens | `config/examples/spot_example.json` |
| **Grid Trading** | Range-bound assets, farming, directional bets | `config/examples/grid_example.json` |
If unsure, recommend **Perp Market Making** — simplest and most liquid.
### Configure
1. Copy the example config:
```bash
cd perplobster && cp config/examples/perp_example.json config/my_bot.json
```
2. Get correct decimals for the market:
```bash
cd perplobster && source venv/bin/activate && python scripts/check_market.py HYPE
```
Replace `HYPE` with their chosen asset.
3. Edit `config/my_bot.json` with the check_market output. Key fields:
- `market`: Asset name (e.g., "ETH", "HYPE")
- `exchange.price_decimals`: From check_market output
- `exchange.size_decimals`: From check_market output
- `trading.base_order_size`: Start with 10-20 USD
- `position.max_position_usd`: Max exposure (start 50-100 USD)
- `position.leverage`: 3x is a safe default
For subaccounts, add:
```json
"account": {
"subaccount_address": "0xSubaccountAddress",
"is_subaccount": true
}
```
### Start the Bot
**Ask the user:** "Config is ready. Start the bot now?"
After they confirm, run:
```bash
cd perplobster && ./start.sh config/my_bot.json
```
Check logs:
```bash
tail -20 perplobster/logs/my_bot.log
```
Stop:
```bash
cd perplobster && ./stop.sh config/my_bot.json
```
### Dashboard (Optional)
```bash
cd perplobster && source venv/bin/activate && python dashboards/dashboard.py &
```
Tell the user to open http://localhost:5050.
## Hyperliquid Market Types
- **Standard Perps**: Just the ticker — `"ETH"`, `"BTC"`, `"HYPE"`, `"ICP"`
- **HIP-3 Builder Perps**: Dex prefix — `"xyz:COPPER"`, `"flx:XMR"` (set `dex` field)
- **HIP-1 Builder Spot**: Index format — `"@260"` for XMR1 (needs `perp_coin` oracle)
- **Canonical Spot**: Pair format — `"PURR/USDC"`
## Troubleshooting
- **"Builder fee has not been approved"**: Run `python scripts/approve_builder_fee.py` in the perplobster directory.
- **"Price must be divisible by tick size"**: Wrong decimals. Run `python scripts/check_market.py ASSET` for correct values.
- **"Post-only order would cross"**: Spread too tight. Increase `base_spread_bps` in config.
- **"Rate limited"**: Enable `smart_order_mgmt_enabled: true` and increase `update_threshold_bps`.
- **422 errors with fromhex()**: Wallet addresses must be full 42-character hex (0x + 40 chars).
- **Orders not showing**: Check `subaccount_address` and `is_subaccount: true` in config.
## Emergency Stop
If something goes wrong, run:
```bash
cd perplobster && source venv/bin/activate && python tools/emergency_stop.py
```
don't have the plugin yet? install it then click "run inline in claude" again.