supurr
Backtest, deploy, and monitor trading bots on Hyperliquid. Supports Grid, DCA, and Spot-Perp Arbitrage strategies across Native Perps, Spot markets (USDC/USDH), and HIP-3 sub-DEXes.
Best use case
supurr is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Backtest, deploy, and monitor trading bots on Hyperliquid. Supports Grid, DCA, and Spot-Perp Arbitrage strategies across Native Perps, Spot markets (USDC/USDH), and HIP-3 sub-DEXes.
Teams using supurr should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/supurr-hyperliquid/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How supurr Compares
| Feature / Agent | supurr | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Backtest, deploy, and monitor trading bots on Hyperliquid. Supports Grid, DCA, and Spot-Perp Arbitrage strategies across Native Perps, Spot markets (USDC/USDH), and HIP-3 sub-DEXes.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Supurr CLI — Complete Command Reference
> **For LLMs**: This is the authoritative reference. Use exact syntax. Config files are in `~/.supurr/configs/`.
---
## Quick Reference
| Command | Purpose |
| ---------------------- | ----------------------------- |
| `supurr init` | Setup wallet credentials |
| `supurr whoami` | Show current wallet |
| `supurr new grid` | Generate grid strategy config |
| `supurr new arb` | Generate spot-perp arb config |
| `supurr new dca` | Generate DCA strategy config |
| `supurr configs` | List saved configs |
| `supurr config <name>` | View config details |
| `supurr backtest` | Run historical simulation |
| `supurr deploy` | Deploy bot to production |
| `supurr monitor` | View active bots |
| `supurr history` | View historical bot sessions |
| `supurr stop` | Stop a running bot (signed) |
| `supurr prices` | Debug price data |
| `supurr update` | Update CLI to latest |
---
## Global Options
```bash
supurr --help # Show all commands
supurr --version, -V # Show CLI version
supurr -d, --debug # Enable debug logging (any command)
```
---
## 1. `supurr init` — Credential Setup
```bash
# Interactive
supurr init
# Non-interactive
supurr init --address 0x... --api-wallet 0x...
# Overwrite existing
supurr init --force
```
| Option | Description |
| --------------------- | ------------------------------ |
| `-f, --force` | Overwrite existing credentials |
| `--address <address>` | Wallet address (0x...) |
| `--api-wallet <key>` | API wallet private key |
---
## 2. `supurr whoami` — Show Identity
```bash
supurr whoami # Shows: Address + masked key
```
---
## 3. `supurr new <strategy>` — Config Generator
Supports three strategies: `grid`, `arb`, `dca`.
```bash
supurr new grid [options] # Grid trading
supurr new arb [options] # Spot-perp arbitrage
supurr new dca [options] # Dollar-cost averaging
```
---
### 3a. `supurr new grid` — Grid Strategy
#### Market Types
| Type | Quote | Requires | Example |
| -------- | -------- | --------- | --------------------------------------- |
| `native` | USDC | — | `--asset BTC` |
| `spot` | Variable | `--quote` | `--asset HYPE --type spot --quote USDC` |
| `hip3` | Per-DEX | `--dex` | `--asset BTC --type hip3 --dex hyna` |
#### Grid Options
| Option | Default | Description |
| ----------------------- | ------------- | ---------------------------------------------- |
| `-a, --asset <symbol>` | `BTC` | Base asset (BTC, ETH, HYPE, etc.) |
| `-o, --output <file>` | `config.json` | Output filename |
| `--type <type>` | `native` | Market type: native, spot, hip3 |
| `--dex <dex>` | — | **Required for hip3**: hyna, xyz, km, vntl |
| `--quote <quote>` | — | **Required for spot**: USDC, USDE, USDT0, USDH |
| `--mode <mode>` | `long` | Grid mode: long, short, neutral |
| `--levels <n>` | `20` | Number of grid levels |
| `--start-price <price>` | — | Grid start price |
| `--end-price <price>` | — | Grid end price |
| `--investment <amount>` | `1000` | Max investment in quote currency |
| `--leverage <n>` | `2` | Leverage (1 for spot) |
| `--testnet` | false | Use Hyperliquid testnet |
#### Grid Examples
```bash
# Native Perp (BTC-USDC)
supurr new grid --asset BTC --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20
# USDC Spot (HYPE/USDC)
supurr new grid --asset HYPE --type spot --quote USDC --levels 3 --start-price 29 --end-price 32 --investment 100
# Non-USDC Spot (HYPE/USDH)
supurr new grid --asset HYPE --type spot --quote USDH --levels 3 --start-price 29 --end-price 32 --investment 100
# HIP-3 (hyna:BTC)
supurr new grid --asset BTC --type hip3 --dex hyna --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20
```
#### HIP-3 DEXes
| DEX | Quote | Assets |
| ------ | ----- | ----------------------------------- |
| `hyna` | USDE | Crypto perps (BTC, ETH, HYPE, etc.) |
| `xyz` | USDE | Stocks (AAPL, TSLA, etc.) |
| `km` | USDT | Kinetiq Markets |
| `vntl` | USDE | AI/tech tokens |
---
### 3b. `supurr new arb` — Spot-Perp Arbitrage Strategy
Generates a config that simultaneously trades the **spot** and **perp** legs of the same asset, capturing spread differentials.
> **Market Constraint**: Only assets that have **both** a spot token AND a perp market on Hyperliquid are eligible. The CLI auto-resolves the spot counterpart.
#### Spot Resolution Logic
Hyperliquid spot tokens for major assets use a `U`-prefix naming convention:
| You pass `--asset` | CLI resolves spot token | Spot pair | Perp pair |
| ------------------ | ----------------------- | ---------- | ---------- |
| `BTC` | `UBTC` | UBTC/USDC | BTC perp |
| `ETH` | `UETH` | UETH/USDC | ETH perp |
| `SOL` | `USOL` | USOL/USDC | SOL perp |
| `ENA` | `UENA` | UENA/USDC | ENA perp |
| `WLD` | `UWLD` | UWLD/USDC | WLD perp |
| `MON` | `UMON` | UMON/USDC | MON perp |
| `MEGA` | `UMEGA` | UMEGA/USDC | MEGA perp |
| `ZEC` | `UZEC` | UZEC/USDC | ZEC perp |
| `XPL` | `UXPL` | UXPL/USDC | XPL perp |
| `PUMP` | `UPUMP` | UPUMP/USDC | PUMP perp |
| `HYPE` | `HYPE` (exact name) | HYPE/USDC | HYPE perp |
| `TRUMP` | `TRUMP` (exact name) | TRUMP/USDC | TRUMP perp |
| `PURR` | `PURR` (exact name) | PURR/USDC | PURR perp |
| `BERA` | `BERA` (exact name) | BERA/USDC | BERA perp |
Resolution order: try `U{ASSET}` first → fallback to exact name → fail if neither exists.
> **⚠️ U-prefix Hazard**: Do NOT pass asset names that already start with `U` (e.g., `UNIT`). The CLI will prepend another `U` and look for `UUNIT`, which doesn't exist. Always use the **perp ticker name** (e.g., `BTC`, not `UBTC`).
#### Arb Options
| Option | Default | Description |
| ---------------------- | ------------------ | -------------------------------------------- |
| `-a, --asset <symbol>` | `BTC` | Perp asset name (BTC, ETH, HYPE, etc.) |
| `--amount <usdc>` | `100` | Order amount in USDC per leg |
| `--leverage <n>` | `1` | Leverage for perp leg |
| `--open-spread <pct>` | `0.003` | Min opening spread (0.003 = 0.3%) |
| `--close-spread <pct>` | `-0.001` | Min closing spread (-0.001 = -0.1%) |
| `--slippage <pct>` | `0.001` | Slippage buffer for both legs (0.001 = 0.1%) |
| `-o, --output <file>` | `{asset}-arb.json` | Output filename |
| `--testnet` | false | Use Hyperliquid testnet |
#### Arb Examples
```bash
# BTC spot-perp arb (default $100/leg)
supurr new arb --asset BTC
# HYPE arb with $50 per leg, 2x leverage on perp
supurr new arb --asset HYPE --amount 50 --leverage 2
# ETH arb with tighter spreads
supurr new arb --asset ETH --open-spread 0.002 --close-spread -0.0005 --slippage 0.0005
# SOL arb on testnet
supurr new arb --asset SOL --testnet
```
> **Balance Requirement**: Arb bots require USDC balance in **both** Spot and Perps wallets on Hyperliquid, since the bot trades on both sides simultaneously.
---
### 3c. `supurr new dca` — DCA Strategy
Generates a Dollar-Cost Averaging config that opens positions in steps when price deviates, then takes profit on the averaged entry.
#### DCA Options
| Option | Default | Description |
| ---------------------------- | ------------- | -------------------------------------------------- |
| `-a, --asset <symbol>` | `BTC` | Base asset |
| `--mode <mode>` | `long` | Direction: long or short |
| `--type <type>` | `native` | Market type: native, spot, hip3 |
| `--trigger-price <price>` | `100000` | Price to trigger base order |
| `--base-order <size>` | `0.001` | Base order size in base asset |
| `--dca-order <size>` | `0.001` | DCA order size in base asset |
| `--max-orders <n>` | `5` | Max number of DCA orders |
| `--size-multiplier <x>` | `2.0` | Size multiplier per DCA step |
| `--deviation <pct>` | `0.01` | Price deviation % to trigger first DCA (0.01 = 1%) |
| `--deviation-multiplier <x>` | `1.0` | Deviation multiplier for subsequent steps |
| `--take-profit <pct>` | `0.02` | Take profit % from avg entry (0.02 = 2%) |
| `--stop-loss <pnl>` | — | Optional stop loss as absolute PnL threshold |
| `--leverage <n>` | `2` | Leverage (1 for spot) |
| `--restart` | false | Restart cycle after take profit |
| `--cooldown <secs>` | `60` | Cooldown between cycles in seconds |
| `-o, --output <file>` | `config.json` | Output filename |
| `--testnet` | false | Use Hyperliquid testnet |
#### DCA Examples
```bash
# BTC DCA long, trigger at $95k
supurr new dca --asset BTC --trigger-price 95000
# ETH DCA short with custom deviation
supurr new dca --asset ETH --mode short --deviation 0.02
# HYPE DCA with auto-restart
supurr new dca --asset HYPE --restart --cooldown 120 --take-profit 0.03
# DCA on spot market
supurr new dca --asset HYPE --type spot --quote USDC --trigger-price 25
```
---
## 4. `supurr configs` — List Saved Configs
```bash
supurr configs # Lists all configs in ~/.supurr/configs/
```
**Output:**
```
📁 Configs (/Users/you/.supurr/configs):
btc-grid.json grid BTC-USDC
hype-usdc-spot.json grid HYPE-USDC
hyna-btc.json grid BTC-USDE
```
---
## 5. `supurr config <name>` — View Config
```bash
supurr config btc-grid # View btc-grid.json
supurr config btc-grid.json # Same
```
---
## 6. `supurr backtest` — Run Backtest
### Syntax
```bash
supurr backtest -c <config> [options]
```
### Options
| Option | Description |
| --------------------- | ---------------------------------------- |
| `-c, --config <file>` | **Required.** Config file (name or path) |
| `-s, --start <date>` | Start date (YYYY-MM-DD) |
| `-e, --end <date>` | End date (YYYY-MM-DD) |
| `-p, --prices <file>` | Use local prices file |
| `-o, --output <file>` | Save results to JSON |
| `--no-cache` | Disable price caching |
### Examples
```bash
# By config name (looks in ~/.supurr/configs/)
supurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01
# By full path
supurr backtest -c ~/.supurr/configs/btc-grid.json -s 2026-01-28 -e 2026-02-01
# Save results
supurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01 -o results.json
```
### Archive Data Availability
| Dex | Asset Format | Example |
| ------------- | ---------------------- | ------------------ |
| `hyperliquid` | `BTC`, `HYPE` | Native perp + Spot |
| `hyna` | `hyna:BTC`, `hyna:ETH` | HIP-3 DEX |
> **Note**: Archive data available from 2026-01-28 onwards.
>
> **Important**: Backtests use Supurr's price archive (tick-level) or a user-provided prices file (`-p`). Do **not** use Hyperliquid Info API mids/candles for backtests; they don't provide tick-level historical data and will produce inaccurate results.
---
## 7. `supurr deploy` — Deploy Bot
```bash
supurr deploy -c <config> [-s <address> | -v <address>]
```
| Option | Description |
| ---------------------------- | ------------------------------------------------------- |
| `-c, --config <file>` | **Required.** Config file (name or path) |
| `-s, --subaccount <address>` | Trade from a subaccount (validates master ownership) |
| `-v, --vault <address>` | Trade from a vault (validates you are the vault leader) |
> **Subaccount vs Vault:**
>
> - **Subaccount** = personal trading account under your master wallet. Verified via `subAccounts` API (checks `master` field).
> - **Vault** = shared investment pool you manage. Verified via `vaultDetails` API (checks `leader` field).
> - Both set `vault_address` in the bot config on success.
> - **Cannot use both** `--subaccount` and `--vault` simultaneously.
### Examples
```bash
# Deploy from main wallet
supurr deploy -c btc-grid.json
# Deploy from subaccount
supurr deploy -c btc-grid.json -s 0x804e57d7baeca937d4b30d3cbe017f8d73c21f1b
# Deploy from vault (you must be the vault leader)
supurr deploy -c config.json --vault 0xdc89f67e74098dd93a1476f7da79747f71ccb5d9
# HL: prefix is auto-stripped (copy-paste from Hyperliquid UI)
supurr deploy -c config.json -s HL:0x804e57d7baeca937d4b30d3cbe017f8d73c21f1b
```
**Output:**
```
✔ Loaded config for grid strategy
✔ Subaccount verified: 0x804e57d7...
✔ Bot deployed successfully!
📦 Deployment Details
Bot ID: 217
Pod Name: bot-217
Bot Type: grid
Market: BTC-USDC
```
### Gotchas
| Issue | Solution |
| ---------------------------- | -------------------------------------------------------------------------- |
| `HL:` prefix in address | Auto-stripped — safe to paste from Hyperliquid explorer |
| "Subaccount not owned" | Ensure the subaccount's `master` matches your `supurr whoami` address |
| "Vault not found" | Check the vault address exists on the correct network (mainnet vs testnet) |
| "Vault leader mismatch" | Only the vault leader can deploy — check `vaultDetails` API |
| `subAccounts` returns `null` | Normal — means no subaccounts exist for that address |
---
## 8. `supurr monitor` — View Active Bots
### Syntax
```bash
supurr monitor [options]
```
### Options
| Option | Description |
| ------------------------ | ------------------------------ |
| `-w, --wallet <address>` | Filter by wallet address |
| `--watch` | Live mode (refreshes every 2s) |
### Examples
```bash
supurr monitor # List all active bots
supurr monitor --watch # Live monitoring (Ctrl+C to exit)
supurr monitor -w 0x1234... # Filter by wallet
```
**Output Columns:**
- **ID** — Bot identifier
- **Type** — Strategy (grid, dca, mm, arb)
- **Market** — Trading pair (BTC-USDC, HYPE-USDH)
- **Position** — Size + direction (L=Long, S=Short)
- **PnL** — Total profit/loss
---
## 9. `supurr history` — View Bot History
```bash
supurr history # Show last 20 bot sessions
supurr history -n 50 # Show last 50 bot sessions
```
| Option | Default | Description |
| --------------------- | ------- | ---------------------- |
| `-n, --limit <count>` | `20` | Number of bots to show |
**Output Columns:**
- **ID** — Bot identifier
- **Market** — Trading pair (from `config.markets[0]`)
- **Type** — Strategy (grid, dca, mm, arb)
- **PnL** — Total profit/loss (realized + unrealized)
- **Stop Reason** — Why the bot stopped (`shutdown:graceful` → "User stopped the bot Successfully")
---
## 10. `supurr stop` — Stop Bot (Signature Auth)
Signs `Stop <bot-id>` with your API wallet private key (EIP-191 personal_sign) and sends the signature to the bot API.
```bash
supurr stop # Interactive - select from list
supurr stop --id 217 # Stop specific bot by ID
```
| Option | Description |
| --------------- | -------------------------------------- |
| `--id <bot_id>` | Bot ID to stop (from `supurr monitor`) |
> **Crypto:** Uses `@noble/curves/secp256k1` + `@noble/hashes/sha3` (pure JS, no native deps). Signature format: `0x{r}{s}{v}` (65 bytes).
---
## 11. `supurr prices` — Debug Price Data
```bash
supurr prices -a BTC # Fetch BTC prices (7 days)
supurr prices -a hyna:BTC --dex hyna # HIP-3 prices
supurr prices -a HYPE -s 2026-01-28 # From specific date
```
| Option | Description |
| ---------------------- | ------------------------------- |
| `-a, --asset <symbol>` | **Required.** Asset symbol |
| `--dex <dex>` | DEX name (default: hyperliquid) |
| `-s, --start <date>` | Start date |
| `-e, --end <date>` | End date |
| `--no-cache` | Disable caching |
---
## 12. `supurr update` — Self-Update
```bash
supurr update # Check and install latest version
```
---
## Complete Workflows
### Workflow 1: Grid — Backtest → Deploy → Monitor
```bash
# 1. Initialize (first time only)
supurr init --address 0x... --api-wallet 0x...
# 2. Create config
supurr new grid --asset BTC --levels 4 --start-price 88000 --end-price 92000 --investment 100 --leverage 20 --output btc-grid.json
# 3. Backtest
supurr backtest -c btc-grid.json -s 2026-01-28 -e 2026-02-01
# 4. Deploy
supurr deploy -c btc-grid.json
# 5. Monitor
supurr monitor --watch
# 6. Stop when done
supurr stop --id <bot_id>
```
### Workflow 2: Arb — Setup → Deploy → Monitor
```bash
# 1. Initialize
supurr init --address 0x... --api-wallet 0x...
# 2. Generate arb config (auto-resolves spot counterpart)
supurr new arb --asset BTC --amount 200 --leverage 1 --output btc-arb.json
# 3. Review the generated config
supurr config btc-arb
# 4. Ensure USDC balance in BOTH Spot and Perps wallets on Hyperliquid
# 5. Deploy
supurr deploy -c btc-arb.json
# 6. Monitor
supurr monitor --watch
```
### Workflow 3: DCA — Configure → Deploy
```bash
# 1. Create DCA config
supurr new dca --asset BTC --trigger-price 95000 --base-order 0.001 --max-orders 5 --take-profit 0.02 --output btc-dca.json
# 2. Deploy
supurr deploy -c btc-dca.json
# 3. Monitor
supurr monitor --watch
```
### Workflow 4: Test All Market Types
```bash
# Native Perp
supurr new grid --asset BTC --output native-btc.json
supurr backtest -c native-btc.json -s 2026-01-28 -e 2026-02-01
# USDC Spot
supurr new grid --asset HYPE --type spot --quote USDC --output hype-usdc.json
supurr backtest -c hype-usdc.json -s 2026-01-30 -e 2026-01-31
# Non-USDC Spot
supurr new grid --asset HYPE --type spot --quote USDH --output hype-usdh.json
supurr backtest -c hype-usdh.json -s 2026-01-30 -e 2026-01-31
# HIP-3
supurr new grid --asset BTC --type hip3 --dex hyna --output hyna-btc.json
supurr backtest -c hyna-btc.json -s 2026-01-28 -e 2026-02-01
```
---
## Config Storage
```
~/.supurr/
├── credentials.json # { address, private_key }
├── configs/ # Saved bot configs
│ ├── btc-grid.json
│ ├── hype-usdc.json
│ └── ...
└── cache/ # Price data cache
└── hyperliquid/
├── BTC/
└── HYPE/
```
---
## API Endpoints Used
| Purpose | Endpoint | Auth |
| ------------- | --------------------------------------------- | ----------------- |
| Bot Deploy | `POST /bots/create/<wallet>` | — |
| Active Bots | `GET /dashboard/active_bots` | — |
| Bot History | `GET /dashboard/user_bots/<address>` (Python) | — |
| Stop Bot | `POST /bots/<bot_id>/stop` (Node) | EIP-191 signature |
| Price Data | `GET /prices?dex=X&asset=Y&start_time=Z` | — |
| Price Archive | `GET /{dex}/{asset}/{date}.json` | — |
---
## Troubleshooting
| Issue | Solution |
| ------------------------- | ---------------------------------------------------------------- |
| "Config not found" | Use `supurr configs` to list available configs |
| "No credentials" | Run `supurr init` first |
| "0 prices fetched" | Check date range (data from 2026-01-28+) |
| "API wallet not valid" | Register API wallet on Hyperliquid first |
| HIP-3 backtest fails | Use format `--dex hyna --asset BTC` |
| "No spot market found" | Asset has no spot counterpart — arb not available for this asset |
| Arb asset starts with `U` | Use the perp name (e.g., `BTC` not `UBTC`) — CLI adds `U` prefix |
---
# Appendix: Hyperliquid Info API
> **Backtesting note**: This appendix is for live metadata and user state lookups. It is **not** a source of tick-level historical data for `supurr backtest`.
> **Get address via**: `supurr whoami` — returns the configured wallet address.
All endpoints use `POST https://api.hyperliquid.xyz/info` with `Content-Type: application/json`.
## Market Data (No Address Required)
| Query | Request Body |
| ---------------- | ------------------------------------ |
| All Mid Prices | `{"type": "allMids"}` |
| Sub-DEX Prices | `{"type": "allMids", "dex": "hyna"}` |
| Perp Metadata | `{"type": "metaAndAssetCtxs"}` |
| Spot Metadata | `{"type": "spotMeta"}` |
| L2 Order Book | `{"type": "l2Book", "coin": "BTC"}` |
| List HIP-3 DEXes | `{"type": "perpDexs"}` |
## User Data (Address Required)
| Query | Request Body |
| --------------- | ------------------------------------------------------------------------------ |
| Perp Positions | `{"type": "clearinghouseState", "user": "0x..."}` |
| Spot Balances | `{"type": "spotClearinghouseState", "user": "0x..."}` |
| Open Orders | `{"type": "openOrders", "user": "0x..."}` |
| Order History | `{"type": "historicalOrders", "user": "0x..."}` |
| Trade Fills | `{"type": "userFills", "user": "0x...", "aggregateByTime": true}` |
| Funding History | `{"type": "userFunding", "user": "0x...", "startTime": <ts>, "endTime": <ts>}` |
| Sub-Accounts | `{"type": "subAccounts", "user": "0x..."}` |
| Vault Details | `{"type": "vaultDetails", "vaultAddress": "0x..."}` |
## HIP-3 Sub-DEXes
| DEX | Quote | Assets |
| ------ | ----- | ----------------------------- |
| `hyna` | USDE | Crypto perps (BTC, ETH, HYPE) |
| `xyz` | USDE | Stocks (AAPL, TSLA, NVDA) |
| `vntl` | USDE | AI/tech tokens |
| `km` | USDT | Kinetiq Markets |
| `cash` | USDC | Tech stocks |
## TypeScript Helper
```typescript
const HL = "https://api.hyperliquid.xyz/info";
async function query<T>(body: object): Promise<T> {
const res = await fetch(HL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body),
});
return res.json();
}
// Examples
const mids = await query({ type: "allMids" });
const positions = await query({ type: "clearinghouseState", user: "0x..." });
const spotBal = await query({ type: "spotClearinghouseState", user: "0x..." });
const dexes = await query({ type: "perpDexs" });
```
## Common Hazards
| Issue | Solution |
| ----------------------- | ------------------------------------------------- |
| `szDecimals` truncation | Truncate qty to `szDecimals` before submit |
| HIP-3 price prefix | Sub-DEX prices keyed as `hyna:BTC`, not `BTC` |
| Sub-DEX asset index | Use local index from DEX's `universe`, not global |
| Fill limits | `userFills` max 2000 — paginate with time ranges |
---
## Tutorials
Step-by-step deployment guides with parameter selection advice and practical tips:
- [Grid Bot Tutorial](tutorials/grid.md) — Range trading with buy/sell grids
- [Arb Bot Tutorial](tutorials/arb.md) — Market-neutral spot-perp arbitrage
- [DCA Bot Tutorial](tutorials/dca.md) — Dollar-cost averaging with auto-restartRelated Skills
8004-skill
ERC-8004 Trustless Agents - Register and manage AI agent identities on TRON and BSC blockchains with on-chain reputation tracking
8004-MCP - Agent Registry Protocol
Multi-chain MCP server for ERC-8004 Agent Registry. Query agents, reputation, and feedback across Solana + EVM chains.
senpi-skills
Agent Skills for autonomous crypto trading on Hyperliquid — trailing stops, market scanning, position management, and more.
sdks
Official Azex SDKs — TypeScript, Python, MCP Server, CLI for the crypto-native LLM API gateway
perp-cli
Multi-DEX perpetual futures CLI + MCP server — Pacifica (Solana), Hyperliquid, Lighter (Ethereum). 18 MCP tools for AI-powered trading
okx-exchange-websocket-skill
Subscribe to OKX public exchange WebSocket channels through UXC raw WebSocket mode for ticker, trade, book, and candle events with explicit subscribe frames.
okx-wallet-portfolio
This skill should be used when the user asks to 'check my wallet balance', 'show my token holdings', 'how much OKB do I have', 'what tokens do I have', 'check my portfolio value', 'view my assets', 'how much is my portfolio worth', 'what\'s in my wallet', or mentions checking wallet balance, total assets, token holdings, portfolio value, remaining funds, DeFi positions, or multi-chain balance lookup. Supports XLayer, Solana, Ethereum, Base, BSC, Arbitrum, Polygon, and 20+ other chains. Do NOT use for general programming questions about balance variables or API documentation. Do NOT use when the user is asking how to build or integrate a balance feature into code.
okx-security
Use this skill for security scanning: check transaction safety, is this transaction safe, pre-execution check, security scan, token risk scanning, honeypot detection, DApp/URL phishing detection, message signature safety, malicious transaction detection, approval safety checks, token approval management. Triggers: 'is this token safe', 'check token security', 'honeypot check', 'scan this tx', 'scan this swap tx', 'tx risk check', 'is this URL a scam', 'check if this dapp is safe', 'phishing site check', 'is this signature safe', 'check this signing request', 'check my approvals', 'show risky approvals', 'revoke approval', 'check if this approve is safe', token authorization, ERC20 allowance, Permit2. Covers token-scan, dapp-scan, tx-scan (EVM+Solana pre-execution), sig-scan (EIP-712/personal_sign), approvals (ERC-20/Permit2). Chinese: 安全扫描, 代币安全, 蜜罐检测, 貔貅盘, 钓鱼网站, 交易安全, 签名安全, 代币风险, 授权管理, 授权查询, 风险授权, 代币授权. Do NOT use for wallet balance/send/history — use okx-agentic-wallet.
okx-onchain-gateway
This skill should be used when the user asks to 'broadcast transaction', 'send tx', 'estimate gas', 'simulate transaction', 'check tx status', 'track my transaction', 'get gas price', 'gas limit', 'broadcast signed tx', or mentions broadcasting transactions, sending transactions on-chain, gas estimation, transaction simulation, tracking broadcast orders, or checking transaction status. Covers gas price, gas limit estimation, transaction simulation, transaction broadcasting, and order tracking across XLayer, Solana, Ethereum, Base, BSC, Arbitrum, Polygon, and 20+ other chains. Do NOT use for swap quote or execution - use okx-dex-swap instead. Do NOT use for general programming questions about transaction handling.
okx-x402-payment
This skill should be used when the user encounters an HTTP 402 Payment Required response, wants to pay for a payment-gated API or resource, or mentions 'x402', 'pay for access', '402 payment', 'payment-gated URL', or 'sign x402 payment'. Primary path signs via TEE with a wallet session (JWT); fallback path guides local EIP-3009 signing with the user's own private key if they have no wallet. Returns the payment proof (signature + authorization) that the caller can attach as a payment header to access the resource. Do NOT use for swap or token transfers — use okx-dex-swap instead. Do NOT use for wallet balance or portfolio queries — use okx-agentic-wallet or okx-wallet-portfolio. Do NOT use for security scanning — use okx-security. Do NOT use for transaction broadcasting — use okx-onchain-gateway. Do NOT use for general programming questions.
okx-dex-trenches
Use this skill for meme/打狗/alpha token research on pump.fun and similar launchpads: scanning new token launches, checking developer reputation/开发者信息/dev launch history/has this dev rugged before/开发者跑路记录, bundle/sniper detection/捆绑狙击, bonding curve status/bonding curve progress, finding similar tokens by the same dev/相似代币, and wallets that co-invested (同车/aped) into a token. Use when the user asks about 'new meme coins', 'pump.fun launches', 'trenches', 'trench', '扫链', 'developer launch history', 'developer rug history', 'check if dev has rugged', 'bundler analysis', 'who else bought this token', 'who aped into this', 'similar tokens', 'bonding curve progress', '打狗', '新盘', '开发者信息', '开发者历史', '捆绑', '同车', 'rug pull count', 'similar meme coins', '捆绑情况', '已迁移出 bonding curve', or '发过多少个项目'. Do NOT use for market-wide whale/signal tracking — use okx-dex-signal. Do NOT use for per-token holder distribution or honeypot checks — use okx-dex-token.
okx-dex-token
Use this skill for token-level data: cluster overview, search tokens, trending/hot tokens (热门, 代币榜单), liquidity pools, holder distribution (whale/巨鲸, sniper, bundler percent), token safety and honeypot risk (貔貅盘, 'is this token a honeypot', 'is this safe to buy', 'rugged?', 'can I sell this'), who created a token, recent buy/sell activity, top profit addresses, trade history by wallet type, or holder cluster analysis (持仓集中度, rug pull probability/跑路风险, new wallet percentage/新钱包持仓比例, suspicious holding percentage/可疑持仓%, bundle hold percent, holder clusters, 'are top holders in same cluster'). Invoke on user intent; address can be provided after. Do NOT use for market-wide whale/signal tracking — use okx-dex-signal. Do NOT use for meme/pump.fun launch scanning, dev reputation, or bundle detection — use okx-dex-trenches. Do NOT use for personal DEX trade history or price charts — use okx-dex-market.